Plik MP4 ignoruje ustawienia napisów w VLC

14

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%

naprzód
źródło
Która wersja systemu operacyjnego i VLC? Czy zachowuje się tak samo z MKV z wbudowanymi SRT?
Karan
OS X 10.10.3. VLC 2.2.1. Osadzenie SRT w pracach MKV. Musi więc być powiązany z kontenerem MP4 lub mov_textformatem napisów. (To ostatnie jest wymagane w przypadku MP4 i wydaje się być niezgodne z MKV.)
naprzód
Czego użyłeś do konwersji wideo? Zakładam ffmpegze względu na tag. Czy możesz pokazać swoje polecenie i pełne wyjście konsoli? ffmpegobsł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.
llogan
Zobacz nowe informacje dodane w poście.
forwardrin
Czy możesz podać plik SRT?
llogan

Odpowiedzi:

6

Opublikowałem problem z twórcami VLC i twierdzą, że problem zostanie naprawiony w nadchodzącej wersji 3.0.

naprzód
źródło
Po prawie dwóch latach problem ten nie został rozwiązany. Jakieś obejście?
Ricardo Sanchez-Saez,
2
Nie żebym o tym wiedział. Wydaje się, że VLC 3 działa od zawsze. Wydaje mi się dziwne, że taki problem został cofnięty o lata w oczekiwaniu na wydanie, które nigdy nie wydaje się nadejść. Próbowałem wersji beta VLC 3, ale okazało się, że są zbyt wadliwe, aby regularnie ich używać. Dlatego trzymam wszystkie moje pliki SRT oddzielnie od głównego pliku wideo, dopóki nie nastąpi cud. Może pomogłoby to, gdyby więcej osób śledziło problem w narzędziu do śledzenia błędów VLC. trac.videolan.org/vlc/ticket/15627
forwardrin
@forthrin ten bilet, który podłączyłeś, został zamknięty dwa lata temu, więc nie mogę nic do niego dodać. Nie jestem pewien, dlaczego uważają, że jest zamknięty.
Joshua Nurczyk
@JoshuaNurczyk: Problem jest prawdopodobnie rozwiązany w VLC 3, ale VLC 3 zajmuje rok, aby dostać się do ostatecznej wersji.
forwardrin
1
Mogę potwierdzić, że błąd został naprawiony w VLC 3
Akira Yamamoto,
1

Jest to zdecydowanie problem z kontenerem MOV_Text / Mp4 i obecnie nie ma innych opcji, aby to naprawić.

Bezstratnie konwertuj MP4 na MKV z napisami

Odkryłem również, że jeśli wyodrębnię plik MOV_Text SRT i dodam go ręcznie, problem nadal występuje, ale jeśli pobrałem osobny plik SRT z Internetu, byłem w stanie dodać je ręcznie, a następnie VLC mógł manipulować czcionką / rozmiarem itp. itp. (Mam na myśli, że jeśli nie chcesz konwertować, jedyną opcją jest pobranie osobnego pliku SRT i ręczne dodanie go w VLC)

FreeSoftwareServers
źródło
1
podczas gdy zauważam, że OP próbuje przejść z MKV do MP4, chciałem powiedzieć, że nie jest to rozwiązanie ATM dla wbudowanych subwooferów Mp4, które VLC może kontrolować czcionkę / rozmiar itp. Musisz dodać zewnętrzne subwoofery do MP4 lub przekonwertować na MKV
FreeSoftwareServers