ffmpeg에서 다음 출력을 갖는 두 파일을 연결하고 싶습니다.
파일1:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file1.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.76.100
Duration: 00:00:02.01, start: 0.000000, bitrate: 172 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 158 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 2 kb/s (default)
Metadata:
handler_name : SoundHandler
파일2:
Input #0, matroska,webm, from 'file2.mkv':
Metadata:
ENCODER : Lavf58.20.100
Duration: 00:01:13.10, start: 0.000000, bitrate: 418 kb/s
Stream #0:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 1k tbn, 60 tbc (default)
Metadata:
DURATION : 00:01:13.100000000
Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp (default)
Metadata:
title : simple_aac_recording
DURATION : 00:01:13.002000000
이들을 연결하기 위해 다음 명령을 사용합니다.
ffmpeg -f concat -safe 0 -i concat.txt -c copy output.mp4
연결이 완료되었지만 프로세스가 여러 번 출력됩니다.
Non-monotonous DTS in output stream 0:1; previous: 99677, current: 76011; changing to 99678. This may result in incorrect timestamps in the output file.
출력 파일을 보면 첫 번째 파일의 영상 출력은 괜찮은데, 두 번째 부분(file2)의 렌더링 속도가 상당히 빨라졌습니다. 오디오에 관해서는, 비디오가 file1에서 나오는 동안 file2의 작은 부분만 있습니다.
연결 파일의 ffmpeg 출력:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.20.100
Duration: 00:00:05.94, start: 0.000000, bitrate: 5210 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 2787 kb/s, 377.45 fps, 50 tbr, 12800 tbn, 50 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 6750 kb/s (default)
Metadata:
handler_name : SoundHandler
file1에는 오디오가 없으므로 오디오 출력이 필요하지 않습니다. file1을 다르게 인코딩할 수 있지만 file2를 그대로 유지하는 것이 좋습니다.
답변1
해결책이 있는지는 확실하지 않지만 아무도 답변하지 않았기 때문에(답변 대신 댓글을 달아야 하는데 내 점수가 그렇게 높지 않습니다)...
비슷한 문제가 발생한 적이 있는데 입력 파일에 MP4 형식 대신 MKV 형식을 사용하면 문제를 해결할 수 있었습니다. 따라서 를 사용하여 file1.mp4를 file1.mkv로 변환한
ffmpeg -i file1.mp4 -c copy file1.mkv
다음 두 개의 MKV 파일을 연결해 보십시오.
(제목이 올바르지 않습니다. 문제는 "다른 비트 전송률"이 아니라 "다른 프레임 속도"입니다.)