Jak „nagrać” ścieżkę z napisami do pliku wideo MP4

10

Chciałbym, aby plik napisów był częścią pliku wideo MP4, aby nie musiałem zajmować się dwoma osobnymi plikami.

Wyobrażam sobie dwa sposoby:

  • Uczyń napisy nieodłączną częścią filmu. Będzie to wymagać ponownego kodowania wideo.
  • Ustaw podtytuł jako osobny strumień, ale nadal osadzony w tym samym pliku wideo. Jest to o wiele bardziej zalecane, szczególnie dlatego, że mogę je wyłączyć (w przeciwieństwie do innych metod), a nawet grać z typem / rozmiarem czcionki.

Jak mam robić rzeczy na 2. sposób? Byłoby również kool wiedzieć, jak działa 1. podejście.

tshepang
źródło
1
Jeszcze tego nie opracowałem, ale jestem bardzo zainteresowany ... Wygląda na to, że kontener mp4 (MPEG-4) może obsługiwać oddzielne strumienie napisów ... więc (dla mnie) to byłaby właściwa droga. Jeśli przeszczepiłeś napisy do samego wideo, musisz je ponownie zakodować i zostaną one osadzone na zawsze ... Jedyną zaletą napisów „zakodowanych na stałe” jest to, że odtwarzacz wideo nie musi bądź świadomy strumienia mp4-subtitle ... Łatwo jest zakodować AVI na sztywno, ale nie miałem jeszcze potrzeby używania strumieni sutitle (jeszcze :). Gdzie jest format twoich napisów?
Peter.O
@ fred Mój plik napisów kończy się na .srt, a Nautilus mówi mi, że formatem są napisy SubRip (application / x-subrip).
tshepang

Odpowiedzi:

9

Format kontenera Matroska (mkv) obsługuje napisy tekstowe osadzone jako osobny strumień w pliku.

Możesz użyć mkvmerge, aby zmienić plik na .mkv i dołączyć napisy do pliku wyjściowego, które możesz włączyć / wyłączyć podczas odtwarzania wideo. Zauważ, że ta metoda NIE będzie ponownie kodować wideo lub audio, po prostu umieszcza te same dane w innym formacie kontenera, więc nie pogorszy to jakości wideo.

mkvmerge -o output.mkv video.mp4 subtitles.srt
axel_c
źródło
Działało jak urok i tak szybko pomyślałem, że rozbił się na starcie!
Tomislav Nakic-Alfirevic
3

W pakiecie o nazwie gpacznajduje się narzędzie CLI o nazwieMP4Box

Oto przykład tego, co zadziałało dla mnie ..

MP4Box  -add ~/file.noaudio.mp4 \
        -add ~/file.mp3 \
        -add ~/file.srt \
             ~/file.MP4Box.mp4   

Użyłem tylko wideo i tylko audio, ale na pewno (?) Będzie działać z normalnym „filmem” audio + wideo .... Jest bardzo późno, więc zostawię to w tym miejscu ...

Uwaga: podtytuły działają w Totemie, ale nie w SMPlayer ...

Peter.O
źródło
1

Wypróbuj coś takiego:

mencoder -oac copy -ovc copy -sub subs.srt video.mp4 -o new_video.mp4
gelraen
źródło
To nie działa. Powoduje to zniekształcenie dźwięku i obrazu, a wideo jest obcięte (plik początkowy to ~ 1,6 GB, a plik wynikowy to ~ 200 MB). Używam mencodera 1.0-rc3.
tshepang
Mam plik MP4 i srt. Ale z tymi argumentami podtytuł nie pojawia się w pliku wynikowym. :(
TrueY
Wyglądał dokładnie to, czego szukałem. Wypróbowałem to z wideo WebM (ścieżka wideo VP8, ścieżka dźwiękowa VORBIS) i otrzymałem w rezultacie zepsuty film. Wstyd. : \
Tomislav Nakic-Alfirevic