나는이 개 MP4 파일을 CONCAT 싶어 header.mp4
하고 body.mp4
. 그리고 나는 아래 명령을 사용합니다.
ffmpeg -i header.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts
ffmpeg -i body.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts
그런 다음 연결합니다.
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc output.mp4
출력 파일은 올바른 지속 시간을 갖지만 오디오의 오디오 body.mp4
는 그대로 유지 body.mp4
됩니다 output.mp4
.
-c copy
세 번째 명령에서 제거하면 올바른 결과가 나오지만 시간이 너무 오래 걸립니다. 뭐가 문제 야?
편집하다
ffmpeg -i header.mp4
:
ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 9.0.0 (clang-900.0.37)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4.2 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --disable-jack --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma --enable-nonfree
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'header.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.52.100
Duration: 00:00:04.04, start: 0.000000, bitrate: 644 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 632 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 50 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(zho): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 2 kb/s (default)
Metadata:
handler_name : SoundHandler
그리고 ffmpeg -i body.mp4
:
ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 9.0.0 (clang-900.0.37)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4.2 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --disable-jack --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma --enable-nonfree
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'body.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2017-03-01T09:47:27.000000Z
Duration: 00:01:33.14, start: 0.000000, bitrate: 241 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 112 kb/s, 24 fps, 24 tbr, 90k tbn, 48 tbc (default)
Metadata:
creation_time : 2017-03-01T09:47:27.000000Z
handler_name : ISO Media file produced by Google Inc.
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
Metadata:
creation_time : 2017-03-01T09:47:27.000000Z
handler_name : ISO Media file produced by Google Inc.
ffmpeg -i header.mp4
및 ffmpeg -i body.mp4
(또는 ffmpeg -i header.mp4 -i body.mp4
당신이 좋아하지만, 모두 잊지 않도록해야합니다 경우 -i
옵션). 입력 및에 대한 필수 정보가 표시됩니다 ffmpeg
. 이 요청은 종종 사용자를 혼란스럽게합니다. 첫 번째와 두 번째 명령의 출력도 충분하지만 출력이 훨씬 길고 추가 정보가 필요하지 않습니다.
ffmpeg -i header.mp4
및ffmpeg -i body.mp4