-fflags +genpts를 사용할 때 ffmpeg가 중단됩니다.

-fflags +genpts를 사용할 때 ffmpeg가 중단됩니다.

ffmpeg 4.2.4-ubuntu0.1을 사용하여 .vob 파일(vobcopy를 사용하여 얻은)을 mp4 컨테이너(mkv에서도 가능)로 다시 다중화하려고 합니다. 처음에는 재다중화가 완료되었지만 다음 오류가 발생했습니다.

[mp4 @ 0x560f9a37e5c0] 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

그리고 수천 번

[mp4 @ 0x560f9a37e5c0] pts has no value

그래서 다음을 사용하여 문제를 해결해 보았습니다 -fflags +genpts.

ffmpeg -fflags +genpts -i 'video.vob' -c copy 'video.mp4'

약 90000개 프레임을 처리한 후 ffmpeg가 어떻게든 중단되고(그러나 CPU는 100%로 계속 실행됨) killCtrl+C를 조합해서만 종료할 수 있습니다.

다른 .vob 파일로 시도했는데 이번에는 ffmpeg가 다른 지점에서 중단되었습니다.


전체 디버그 로그를 생성할 때 프로그램이 중단된 후 출력에는 항상 마지막으로 편집된 동일한 프레임(92775)이 표시되는 것을 확인했습니다. 여기에서 볼 수 있습니다:https://paste.ubuntu.com/p/tbhMmpQwff/

답변1

플래그 를 추가하여 문제를 해결했습니다 +igndts.

ffmpeg -fflags +genpts+igndts -i 'video.vob' -c copy 'video.mp4'

이전에 ffmpeg가 끊긴 지점에서 일부 오류 메시지가 발생했지만 생성된 비디오 파일은 괜찮았습니다.

[mp4 @ 0x56482f355a00] Invalid DTS: 333993600 PTS: 0 in output stream 0:0, replacing by guess
[mp4 @ 0x56482f355a00] Non-monotonous DTS in output stream 0:0; previous: 334018800, current: 334018800; changing to 334018801. This may result in incorrect timestamps in the output file.

문제의 원인과 해결 방법이 무엇인지 잘 모르겠지만 +igndts문제가 해결되어 기쁘네요.

관련 정보