2017-01-21 18 views
0

나는 다음과 같은 명령을 사용하여,는 FFmpeg 2 개 MKV 비디오를 연결하는 시도했습니다 그러나ffmpeg를 사용하여 mkv를 연결할 때의 문제점 : 타임 스탬프를 올바르게 설정하는 방법?

ffmpeg -i file-01.mkv -f mpegts -c copy -bsf:v h264_mp4toannexb file-01.mpeg.ts 
ffmpeg -i file-02.mkv -f mpegts -c copy -bsf:v h264_mp4toannexb file-02.mpeg.ts 
ffmpeg -isync -i "concat:file-01.mpeg.ts|file-02.mpeg.ts" -f matroska 
-c copy output.mkv 

을, 나는 다음과 같은 오류가 나타납니다 나는 타임 스탬프를 설정하는 방법에 대한 어떻게 가야합니까

[matroska @ 0x7fc72a000600] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly [matroska @ 0x7fc72a000600] Can't write packet with unknown timestamp av_interleaved_write_frame(): Invalid argument

를?

+0

'-isync'는 몇 년 전에 비활성화되었습니다. ffmpeg가 오래 되었다면 제거하십시오. '-i' 앞에'-fflags + genpts'를 추가하십시오. – Mulvya

+0

감사합니다. @Mulvya. 나는'-fflags + genpts'를 사용하여 그것을 시도했지만 unset timestamps에 관해서 같은 에러를 받았다. –

+0

결과가 정상적으로 작동합니까? – Mulvya

답변

0

반드시 솔루션 일 필요는 없지만, 결국 mkvmerge가 결국 나를 위해 일했습니다. 훨씬 더 간단했습니다.

mkvmerge -o "merged.mkv" "file1.mkv" +"file2.mkv" 
0

좋아, 다음 단계를 수행하십시오

ffmpeg -i file-01.mkv -c copy -map v 01.mp4 
ffmpeg -i file-02.mkv -c copy -map v 02.mp4 
ffmpeg -i 01.mp4 -i file-01.mkv -map 0:v -map 1:a -c copy -bsf:v h264_mp4toannexb file-01.mpeg.ts 
ffmpeg -i 02.mp4 -i file-02.mkv -map 0:v -map 1:a -c copy -bsf:v h264_mp4toannexb file-02.mpeg.ts 
ffmpeg -i "concat:file-01.mpeg.ts|file-02.mpeg.ts" -f matroska 
-c copy output.mkv 

일부 H.264 스트림이 더 PTS 값을 갖는 패킷이있다. FFmpeg는 이러한 스트림을 다중화하기 위해 무의미한 지원을합니다.

+0

아직 작동하지 않습니다, @ Mulvya. '[matroska @ 0x7f869c000000] 스트림 0에 대한 패킷에서 타임 스탬프가 설정 해제되었습니다. 향후 사용되지 않을 예정입니다. 코드를 수정하여 타임 스탬프를 올바르게 설정하십시오. [matroska @ 0x7f869c000000] 알 수없는 타임 스탬프가 포함 된 패킷을 쓸 수 없습니다. av_interleaved_write_frame() : 잘못된 인수 프레임 = 1143 fps = 0.0 q = -1.0 Lsize = 8381kB 시간 = 00 : 00 : 45.60 bitrate = 1505.7kbits/s 속도 = 667x 비디오 : 7857kB 오디오 : 528kB 자막 : 0kB 다른 스트림 : 0kB 글로벌 헤더 : 0kB muxing 오버 헤드 : 알 수 없음 변환 실패! –

+0

파일을 업로드하십시오. – Mulvya

+0

나는 대신 mkvmerge를 사용하여 종료했다. 아무런 문제가 없었다. 훨씬 더 간단합니다. –