FFMPEG MPK를 MP4로 변환하면 자막이 손실 됨


11

현재 내 mkv 라이브러리를 mp4로 변환하려고합니다 (Iphone 6 plus)

mkv에서 mp4 로의 변환을 올바르게 수행했지만 자막 부분 (SRT)이 없습니다.

내 코드는 다음과 같습니다.

dir/b/s *.mkv >mkvlist.txt   ///////// this gets a list of all the mkv files on the directory

for /F "delims=;" %%F in (mkvlist.txt) do ffmpeg.exe  -i "%%F" -format mp4 -vcodec copy -acodec aac -strict -2 -sn "%%~dF%%~pF%%~nF.mp4"   ///////////// this makes the conversion

del mkvlist.txt     ////// this deletes the txt file

스크립에 자막을 포함하고 싶지만 자막의 올바른 이름을 스크립트에 삽입하는 데 문제가 있습니다 (여러 변환 일괄 처리이므로).


.mkv 파일은 컨테이너 형식입니다. mkv 파일에 추출 할 수있는 .srt 파일이 포함되어있을 가능성이 큽니다. .mp4 파일과 이름이 같아야 작동합니다. mkv 파일은 실제로 mp4 파일을 포함 할 수도 있지만 .divx, .avi 또는 기타 비디오 형식을 가질 수도 있습니다.
LPChip

답변:


17

MP4는 SRT를 지원하지 않습니다. 소프트 서브 또는 하드 서브를 사용할 수 있습니다.

소프트 서브

파일에서 별도의 스트림으로 구성된 자막. 플레이어에서 켜거나 끌 수 있으며 비디오 스트림을 다시 인코딩 할 필요가 없습니다.

ffmpeg -i input.mkv -c copy -c:s mov_text output.mp4

MP4에서 시간이 지정된 텍스트 소프트 서브에 대한 플레이어 지원은 다소 나쁠 수 있습니다. 당신은 그것을 시도해야합니다.

Hardsubs

Hardsub는 비디오에 "굽기"되므로 비디오를 다시 인코딩해야합니다.

ffmpeg -i input.mkv -vf subtitles=input.mkv output.mp4

하나 이상의 특정 자막 스트림을 선택하는 방법과 같은 자세한 내용은 susbtitles 필터 설명서 를 참조하십시오 .


내 코드를 더 잘 이해하도록 도와 줄 수 있습니까? 서브에 대한 재 인코딩을 어디서 그리고 왜 추가 하시겠습니까? (그리고 하위 폴더의 모든 파일을 해당 하위로 일괄 변환하는 솔루션이나 방법을 생각할 수 있습니까?) (자막이 없으면 파일을 완전히 건너 뛰고 다음 파일로 넘어 가야합니다.
dpkmon 2016 년

2

핸드 브레이크로 찢은 일부 mp4 파일에서 MP4에서 MKV로 비슷한 문제가 발생했습니다. 먼저 https://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/subtitle_options를 참조 하여 mkv와 mp4의 특정 자막 형식을 암시했습니다. 작동하지 않는 엉덩이와 mov_text 변환으로 놀아 본 후 일부 파일을 테스트하고 dvd_subtitle 형식이 나타나는 것을 알았습니다. 다음과 같은 많은 일을 한 후에는 효과가있었습니다.

ffmpeg -i "\\server\directory\Sourcefile.mp4" -c:v copy -c:a copy -c:s dvd_subtitle "\\server\directory\Outputfile.mkv"

도움이 되길 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.