Перетворення FFMPEG mkv в mp4 втрачає субтитри


11

Зараз намагаюся перетворити свою бібліотеку mkv в mp4 (Iphone 6 плюс)

Мені вдалося правильно дістатись до конверсії 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 не підтримує СТО. Можна використовувати софтсубс або жмути.

софтсуби

Субтитри, які складаються як окремий потік у файлі. Вони можуть бути включені / вимкнені програвачем, і не вимагають повторного кодування відеопотоку.

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

Підтримка програвача для тимчасових текстових підказок у форматі MP4 може бути досить поганою. Вам доведеться просто спробувати.

хардсуби

Hardsubs "спалюються" у відео, тому відео потрібно перекодувати.

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

Додаткову інформацію, наприклад, як вибрати певний потік підзаголовків, див. У документації щодо фільтра підзаголовок.


Не могли б ви допомогти мені краще зрозуміти мій код? Де і навіщо ви додали б перекодування для абонентів? (І якщо ви можете придумати рішення або спосіб пакетної конвертації всіх файлів у підпапках з відповідними піддошками?) (Якщо немає субтитрів, то знадобиться повністю пропустити файл і перейти до наступного.
dpkmon

2

У мене була подібна проблема переходу від MP4 до MKV з деяких mp4-файлів, які я зірвав із Handbrake. Я вперше проконсультувався на https://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/subtitle_options , який мав на увазі конкретні формати субтитрів для mkv vs 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"

Сподіваюся, це допомагає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.