ffmpeg를 사용하여 기본 자막을 설정하는 방법

ffmpeg를 사용하여 기본 자막을 설정하는 방법

비디오, 오디오, 파일로 .srtmp4 파일을 만들었습니다 .

ffmpeg -i video.mp4 -i audio.m4a -i sub.srt -map 0:0 -metadata:s:v:0:0 언어=eng -map 1:0 -metadata:s:a:0:0 언어 =eng -map 2:0 -metadata:s:s:0:0 언어=eng -c copy -codec mov_text out.mp4

잘 작동하지만 기본적으로 자막이 표시되지 않습니다. 자막이 기본으로 나오도록 하는 방법이 있나요?

답변1

당신은 그것을 사용할 수 있습니다MP4Box 0.6.2-DEV-rev453(2016년 5월) 이후에 다음을 수행합니다.

mp4box -add xr.mp4 -add xr.en.srt:txtflags=0xC0000000 -new ya.mp4

그러면 출력 파일의 자막 스트림이 필수로 표시됩니다.하지만, 이 태그는 다음과 같은 경우에만 인식됩니다. VLC 3.0.0-20161101(2016년 11월).


누군가 언급한 걸 봤어요이 게시물FFmpeg 메일링 리스트에 FFmpeg 배포를 구현하기 위한 패치:

ffmpeg -i xr.mp4 -i xr.en.srt -c copy -c:s mov_text -disposition:s forced ya.mp4

그러나 "Forced" 및 "Default"를 시도한 후에는 FFmpeg로 표시된 자막이 VLC에서 강제로 인식되지 않습니다.


의견에 대한 응답으로 다음은 MP4Box 0.7.0(2017년 4월) 및 VLC 3.0.0-20170926(2017년 9월)을 사용한 테스트입니다. 최신 VLC 버전에는 자막이 없는 비디오에서도 충돌 문제가 있다는 점에 유의하세요. 이 파일을 사용하십시오:

youtube-dl --write-auto-sub --format 18 --output xr.mp4 kcs82HnguGc
ffmpeg -i xr.en.vtt xr.en.srt
mp4box -add xr.mp4 -add xr.en.srt:txtflags=0xC0000000 -new ya.mp4

결과:

아들

답변2

이것이 해결 방법으로 간주되는지 잘 모르겠습니다. vlc + ffmpeg 조정이 필요합니다. vlc에서는 "eng"을 subs의 기본 매개변수로 설정할 수 있습니다. https://stackoverflow.com/questions/17928192/set-a-subtitle-언어-using-ffmpeg ffmpeg의 "-metadata:s:s:0 언어=eng" - "eng"과 같이 서브스트림에 대한 메타데이터를 설정할 수 있습니다. vlc 3.0.9.2에서 이것을 시도했는데, vlc는 eng sub 재생을 선택했습니다.

도움이 되었기를 바랍니다

(위 내용은 "ID 94213 지원되지 않는 코덱" 문제에 대한 솔루션을 찾기 위한 솔루션의 일부입니다. "-sn"을 사용하여 비디오/오디오/하위 스트림을 새 비디오/오디오 전용 스트림으로 다시 복사한 다음 다시 -관련 하위 흐름 추가)

관련 정보