Файл MP4 игнорирует настройки субтитров в VLC

14

При воспроизведении фильма MKV (h264 / aac) с отдельным файлом .SRT VLC позволяет мне идеально контролировать внешний вид субтитров из меню.

Однако после преобразования без потерь MKV / SRT в MP4 со встроенными субтитрами («mov_text») субтитры отображаются в виде небольшого шрифта Arial (?), И настройки VLC на это не влияют.

Я подумал, что, возможно, файл MP4 содержит некоторую информацию о том, как отображать субтитры, которые имеют приоритет, но это происходит даже после того, как я удалил все метаданные из файла MP4.

Это ошибка / функция в VLC? Как мне заставить его придерживаться настроек визуальных субтитров для всех видов видеофайлов.

РЕДАКТИРОВАТЬ: SRT ПРИМЕР

1
00:00:00,000 --> 00:00:07,000
Lorem ipsum dolor sit amet,
consectetur adipiscing elit,

2
00:00:09,000 --> 00:00:12,000
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.

(etc.)

РЕДАКТИРОВАТЬ: СМОТРИТЕ ВЫХОД FFMPEG НИЖЕ

ffmpeg -y -i "in.mp4" -i "in.srt" -acodec copy -vcodec copy -scodec mov_text -absf aac_adtstoasc "out.mp4" ffmpeg version 2.8 Copyright (c) 2000-2015 the FFmpeg developers built with Apple LLVM version 7.0.0 (clang-700.0.72) configuration: --prefix=/usr/local/Cellar/ffmpeg/2.8 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid --enable-ffplay --enable-libfdk-aac --enable-nonfree --enable-vda libavutil 54. 31.100 / 54. 31.100 libavcodec 56. 60.100 / 56. 60.100 libavformat 56. 40.101 / 56. 40.101 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 40.101 / 5. 40.101 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 2.101 / 1. 2.101 libpostproc 53. 3.100 / 53. 3.100 Input #0, mpegts, from 'in.mp4': Duration: 00:55:34.20, start: 10.099667, bitrate: 2441 kb/s Program 1 Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 162 kb/s Stream #0:2[0x102]: Data: timed_id3 (ID3 / 0x20334449) Input #1, srt, from 'in.srt': Duration: N/A, bitrate: N/A Stream #1:0: Subtitle: subrip Output #0, mp4, to 'out.mp4': Metadata: encoder : Lavf56.40.101 Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 25 tbr, 90k tbn, 90k tbc Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, 162 kb/s Stream #0:2: Subtitle: mov_text ([8][0][0][0] / 0x0008) Metadata: encoder : Lavc56.60.100 mov_text Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy) Stream #1:0 -> #0:2 (subrip (srt) -> mov_text (native)) Press [q] to stop, [?] for help frame=83215 fps=3113 q=-1.0 Lsize= 958501kB time=00:55:34.08 bitrate=2355.1kbits/s video:891302kB audio:65022kB subtitle:18kB other streams:0kB global headers:0kB muxing overhead: 0.225788%

forthrin
источник
Какая версия ОС и VLC? Это ведет себя так же с MKV со встроенными SRT?
Каран
OS X 10.10.3. VLC 2.2.1. Встраивание СТО в MKV работает. Так что это должно быть связано с контейнером MP4 или mov_textформатом субтитров. (Последнее необходимо для MP4, и , кажется , несовместимые с MKV.)
forthrin
Что вы использовали для конвертации видео? Я полагаю, ffmpegиз-за тега. Можете ли вы показать свою команду и полный вывод консоли? ffmpegподдерживает правильное кодирование / декодирование некоторой стилизации в mov_text (размер шрифта, цвет шрифта, полужирный, курсив и т. д.). Я предполагаю, что ваша сборка старая, но в настоящее время невозможно сказать без дополнительной информации от вас. Однако я не уверен, как VLC справляется с этим.
Llogan
Смотрите новую информацию, добавленную в пост.
forthrin
Можете ли вы предоставить файл SRT?
Llogan

Ответы:

6

Опубликовал проблему с разработчиками VLC, и они утверждают, что проблема будет исправлена ​​в следующем выпуске 3.0.

forthrin
источник
Спустя почти два года эта проблема не была исправлена. Любое решение?
Рикардо Санчес-Саез
2
Не то, что я знаю о. VLC 3, кажется, был в работе навсегда. Я нахожу странным, что такая проблема отодвинута на многие годы в ожидании релиза, который, кажется, никогда не появится. Я попробовал бета-версии VLC 3, но я обнаружил, что они слишком глючные, чтобы использовать их на регулярной основе. Таким образом, я храню все мои файлы SRT отдельно от основного видеофайла, пока не произойдет чудо. Возможно, это помогло бы, если бы больше людей следили за этой проблемой на трекере ошибок VLC. trac.videolan.org/vlc/ticket/15627
17
@ forthrin тот билет, который вы связали, был закрыт два года назад, поэтому я не могу ничего добавить к нему. Я не уверен, почему они думают, что это закрыто.
Джошуа
@JoshuaNurczyk: Проблема предположительно исправлена ​​в VLC 3, но VLC 3 требуется год, чтобы добраться до финальной версии.
forthrin
1
Я могу подтвердить, что эта ошибка исправлена ​​в VLC 3
Акира Ямамото
1

Это определенно проблема с контейнером MOV_Text / Mp4, и в настоящее время нет других способов ее исправить.

Конвертировать Mp4 в MKV с субтитрами без потерь

Кроме того, я обнаружил, что если я извлек MOV_Text SRT и добавил его вручную, проблема все равно возникла, но если я скачал отдельный файл SRT из Интернета, я смог добавить их вручную, а затем VLC смог манипулировать шрифтом / размером и т. Д. и т. д. (я имею в виду, что если вы не хотите конвертировать, единственный вариант - загрузить отдельный файл SRT и вручную добавить его в VLC)

FreeSoftwareServers
источник
1
Хотя я заметил, что OP пытается перейти с MKV на Mp4, я хотел бы поделиться, что это не решение ATM для встроенных сабвуферов Mp4, которое VLC может контролировать шрифт / размер и т. д. Вы должны добавить внешние сабвуферы в MP4 или преобразовать в MKV
FreeSoftwareServers