2017-10-23 4 views
0

AVFoundation 프레임 워크로 차례로 2 개의 비디오를 연결하려고합니다. AVAssetExport로 내보낼 때 결과는 훌륭합니다! HTML5 비디오으로 동영상을 재생할 때 Safari, Firefox에서는 볼 수 있지만 Chrome에서는 볼 수 없습니다. 깊은 분석을 통해 근본 원인이 내 보낸 비디오에 2 개의 오디오 채널이 있다는 것을 알았습니다 !!!! 동영상에서 오디오를 제거하면 모든 것이 Google 크롬에서도 작동합니다. 내 코드에서AVFoundation concat 비디오 및 오디오

나는 같은 트랙에 오디오를 추가하지만 서로 다른 시간의 범위 :이 구글 크롬에 허용되지 않는 대신 하나의 나 2 개의 별도 audiotracks을 생산 추측

asset1.tracks(withMediaType: AVMediaTypeAudio)[0].insertTimeRange(asset1.duration, asset1, start1) 
asset2.tracks(withMediaType: AVMediaTypeAudio)[0].insertTimeRange(asset2.duration, asset2, start2) 

. 이 링크에서 비디오를 찾을 수 있습니다 : http://www.livebomber.com/prova.php Safari 또는 Firefox에서 열면 Firefox가 잘 작동하지만 Google Chorome을 사용하면 오류가 표시됩니다. 모든 오디오 트랙을 하나로 병합하고 내보내려면 어떻게해야합니까? 고맙습니다.

답변

0

this 라이브러리를 사용하여 3 개의 비디오를 병합하는 동안 아주 동일한 문제가 발생했습니다. 그 중 2 명은 동일한 자원에서 나온 것이지만 다른 하나는 다른 해상도와 설정을 가진 다른 자원에서 나왔습니다. 2 일 동안 파기 한 후에 문제가되는 비디오의 오디오 채널을 모노로 변환해야한다는 것을 알았습니다.

나는이 코드를 사용하여 영구적 인 해결책이 아니다, 알고 있지만 나는 그것이 코드 :

는 희망이 도움을 사용하여 해결하고자하는 것들에 대한 아이디어를 제공합니다 생각합니다.

+0

안녕하세요. 도움을 많이 주셔서 감사합니다. 나는 이것을 확실히 시도 할 것이다. 필자에게 더 잘 설명해 주겠다. 필자는 iOS 카메라의 441k 오디오 샘플 속도에서 48k 오디오 샘플 속도로 1 개의 비디오 mp4를, 또 다른 하나의 mov를 얻었다. 둘 다 480x640입니다. 스테레오를 모노로 변환하는 가장 좋은 방법은 무엇입니까? –

+0

안녕하세요 Alessio, 병합 된 비디오 클립 내의 오디오 속성 차이가 재생 문제의 주요 위험이 될 수 있습니다. 필자는 Adobe Premiere를 사용하여 내가 사용하고 있던 비디오를 만들었습니다. 오픈 소스 명령 행 도구 'ffmpeg'도 변환에 사용될 수 있습니다. 그러나 가장 좋은 방법은 AVFoundation을 사용하여 응용 프로그램 내에서 이러한 모든 변환을 처리하는 것 같아요,하지만 미안, 그것에 충분한 경험이 없어 :/ – scaryguy

+0

정말 고마워 !! 해결책은 프레임 단위로 AVAssetWriter로 다시 인코딩하는 것이지만 아직 시도하지 않았습니다. –