Podczas odtwarzania filmu MKV (h264 / aac) z osobnym plikiem .SRT, VLC pozwala mi idealnie kontrolować wygląd napisów z menu.
Jednak po bezstratnej konwersji MKV / SRT na MP4 z wbudowanymi napisami („mov_text”) napisy są wyświetlane jako mała czcionka Arial (?), A ustawienia VLC nie mają na to wpływu.
Myślałem, że może plik MP4 zawiera informacje o tym, jak wyświetlać napisy, które miały pierwszeństwo, ale dzieje się tak nawet po usunięciu wszystkich metadanych z pliku MP4.
Czy to błąd / funkcja w VLC? Jak sprawić, by był zgodny z ustawieniami napisów wizualnych dla wszystkich rodzajów plików wideo.
EDYCJA: PRZYKŁAD 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.)
EDYCJA: ZOBACZ PONIŻEJ WYDAJNOŚĆ 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%
mov_text
formatem napisów. (To ostatnie jest wymagane w przypadku MP4 i wydaje się być niezgodne z MKV.)
ffmpeg
ze względu na tag. Czy możesz pokazać swoje polecenie i pełne wyjście konsoli? ffmpeg
obsługuje prawidłowe kodowanie / dekodowanie niektórych stylizacji w mov_text (rozmiar czcionki, kolor czcionki, pogrubienie, kursywa itp.). Domyślam się, że twoja wersja jest stara, ale obecnie nie można powiedzieć bez dodatkowych informacji od ciebie. Nie jestem jednak pewien, jak VLC sobie z tym radzi.