FFmpeg를 사용하여 여러 PGS 자막 트랙 복사

FFmpeg를 사용하여 여러 PGS 자막 트랙 복사

저는 Debian 9를 사용하고 있습니다. PGS에 여러 오디오 트랙과 자막이 포함된 파일이 있습니다. 비디오를 h265에 전달하고 모든 오디오 트랙과 자막을 .mkv 컨테이너에 그대로 유지하고 싶습니다. mp4는 이미지 기반 자막을 지원하지 않기 때문입니다.

내가 사용하는 명령은 다음과 같습니다.

ffmpeg -i entrada.264.mkv -c:v libx265 -f matroska -map 0 salida.265.mkv

하지만 ffmpeg에서 다음 오류가 발생합니다.

[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 6 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 7 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 8 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 9 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 10 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 11 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Only SUBTITLE_ASS type supported.
Subtitle encoding failed

그리고 한 번에 하나씩 복사하려면 첫 번째 항목을 굽기만 하면 됩니다.

여기문제의 파일 데이터는 다음과 같습니다.

요약하자면:

예상 결과: 비디오 파일을 h265로 레코딩하고 모든 오디오와 자막을 수정하지 않고 복사하거나 사용할 파일을 선택할 수 있도록 비디오에 굽습니다.

획득한 결과: 자막 매개변수 부족으로 인한 오류입니다.

자막을 하나씩 추출한 다음 mkvmerge와 같은 프로그램을 통해 비디오에 추가할 필요 없이 ffmpeg에서 직접 수행할 수 있는 방법이 있습니까?

답변1

스트림 복사(재다중화) 비디오를 제외한 모든 것:

ffmpeg -i entrada.264.mkv -map 0 -c copy -c:v libx265 salida.265.mkv

-map 0에 의존하는 대신 입력에서 출력까지의 모든 스트림을 포함합니다.기본 스트림 선택 동작스트림 유형당 하나의 스트림만 포함됩니다.

답변2

이는 오류가 아닙니다. 경고 메시지입니다. 다음 -loglevel warning메시지를 반환합니다.

ffmpeg -i entrada.264.mkv -loglevel warning -c:v libx265 -f matroska -map 0 salida.265.mkv

그리고 -loglevel error그것을 억제합니다.

ffmpeg -i entrada.264.mkv -loglevel error -c:v libx265 -f matroska -map 0 salida.265.mkv

내 출력 mkv 파일의 모든 자막을 다음을 통해 테스트했습니다.자막 편집그리고 그것들은 모두 손상되지 않았습니다. 이 경고는 나중에 해당 자막을 다시 인코딩하기로 결정한 경우에만 경고하기 위해 표시되는 것 같습니다.

관련 정보