2011-09-27 1 views
8

두 개의 mp4 비디오를 결합하여 ffmpeg를 사용하여 단일 mp4 비디오를 구성하고자합니다. 내가 지금까지 뭘하려 ffmpeg에서 두 개의 비디오 결합하기

은 내가 비디오 첫 번째 입력의 코덱과 다른되지 함께 동영상을받을 때마다

ffmpeg -i input1.mp4 -i input2.mp4 output.mp4 

입니다하지만. 어떻게 결합 할 수 있습니까? 이것에 대한 어떤 아이디어든지 높게 평가 될 것이다.

+1

"첫 번째 입력의 비디오 코덱과 다른 비디오 코덱은 무엇을 의미합니까?" 서로 다른 비디오 형식입니까? 출력에서 두 비디오의 내용을 모두 가져 왔습니까? – TheJuice

+0

자세한 내용을 제공해주십시오. 어떻게 그들을 결합하기를 기대합니까? 순차적으로? 또는 하나의 파일에 두 개의 병렬 비디오 스트림을 갖고 싶습니까? MP4는 단지 컨테이너 일뿐입니다. 실제 코덱이 같은가요? 두 파일 모두에 대해'ffprobe '의 결과를줍니다. – misha

+0

두 비디오는 모두 동일한 형식이며 i가 제공하는 출력 파일의 첫 번째 비디오 만 가져옵니다. – Astha

답변

5

파일 결합에 대한 정보는 FFMPEG FAQ을 읽으십시오.

불행히도 MP4 파일을 사용하고 있으므로 MP4 형식에 "헤더"(파일의 시작 부분 일 필요는 없음) 섹션이 포함되어 있기 때문에 간단한 연결이 작동하지 않습니다. 미디어 데이터에 대한 오프셋을 설명하고 포함합니다. 두 파일을 연결될 수있는 형식으로 코드 변환 한 다음 해당 형식 (적절한 헤더 섹션을 생성 함)에서 MP4 파일을 생성해야합니다.

5

.mp4 파일은 연결할 수 없지만 .mpg 파일은 연결할 수 있습니다. ffmpeg를 사용하여 두 비디오를 모두 .mpg로 먼저 변환 해보십시오. 그런 다음 두 .mpg 파일에서 간단한 linux cat 명령을 실행하여 결합 된 .mpg 파일을 작성하십시오. 그런 다음 ffmpeg를 사용하여 연결된 .mpg 파일을 .mp4로 변환하십시오. 이것은 일종의 원형 접근이지만 일하는 것입니다. "명명 된 파이프"를 사용하여 명령 수를 줄일 수 있지만 그 결과는 같습니다.

3

이 작업은 ffmpeg으로 수행 할 수 있지만(부분은 GPAC)이라고하는 작은 도구가있어 여러 개의 MP4 파일을 연결할 수 있습니다. 귀하의 경우에는

이 구문은 이전의 답변을 보여, 당신은 중간 형식으로 먼저 변환해야

MP4Box -cat input1.mp4 -cat input2.mp4 output.mp4 
+2

[concat demuxer] (https://trac.ffmpeg.org/wiki/Concatenate#demuxer)를 사용하여'ffmpeg'를 사용하여이 작업을 수행 할 수 있습니다 (입력 내용이 모두 같은 형식 인 경우 사용하고 [stream 복사] (http://ffmpeg.org/ffmpeg.html#Stream-copy) 또는 [concat filter] (http://ffmpeg.org/ffmpeg-filters.html#concat) (사용하려는 경우 다시 사용하십시오. 인코딩 및/또는 입력 형식이 동일하지 않은 경우, 타임베이스 등). – LordNeckbeard

+0

안녕하십니까. mp4box를 사용하여 GoPro에서 여러 개의 mp4 파일을 테스트했습니다. 나는 이것이 얼마나 효과적인지 놀랍다. 그들은 완벽하게 결합되었습니다. – daniel

5

입니다. 또는 MP4는 H264 비트 스트림을 포함하는 경우, 당신은 사용할 수 있습니다

ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input1.ts 
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input2.ts 
ffmpeg -i "concat:input1.ts|input2.ts" -c copy output.mp4 

더 자세한 대답 당신은 here을 찾을 수 있습니다.