Převod titulků *.vtt do *.sub pro kontejner MP4

Jigdo

  • *****
  • 506
    • Zobrazit profil
Převod titulků *.vtt do *.sub pro kontejner MP4
« kdy: 03. 04. 2023, 09:55:42 »
Poradi nekdo jak dostat VTT titulky do SRT formatu,
ktere potom funguji v kontejneru MP4 a jde to z prikazove radky?

Zkousel jsem

Kód: [Vybrat]
ffmpeg -i fe142701fbafea054d16a1d432c4699c.vtt -c:s text subtitles.srt
ffmpeg -i fe142701fbafea054d16a1d432c4699c.vtt -c:s subrip sub.srt

ale vypada to ze FFmpeg to neumi

Online jsem nasel stranky
https://www.happyscribe.com/subtitle-tools/subtitle-converter/done
« Poslední změna: 03. 04. 2023, 10:17:31 od Petr Krčmář »


Re:Převod titulků *.vtt do *.sub pro kontejner MP4
« Odpověď #1 kdy: 03. 04. 2023, 11:11:26 »
zkus místo -c:s text použít -c:s mov_text

Jigdo

  • *****
  • 506
    • Zobrazit profil
Re:Převod titulků *.vtt do *.sub pro kontejner MP4
« Odpověď #2 kdy: 03. 04. 2023, 11:14:31 »
Zapomnel jsem napsat verzi ffmpeg

ffmpeg version N-110129-gd2e1389285-20230331 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 12.2.0 (crosstool-NG 1.25.0.152_89671bf)

  configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --disable-libmfx --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --disable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20230331

A co je zvlastni ze to asi FFMpeg umnel, protoze na webu je vicero zdroju co odkazuji prave na ffmpeg
https://www.garysieling.com/blog/convert-vtt-subtitles-srt/
a dalsi

Manual zminuje ze WebVTT umi i Encodovat
https://trac.ffmpeg.org/wiki/ExtractSubtitles

>ffmpeg -hide_banner -codecs | findstr subtitle
 DES... ass                  ASS (Advanced SSA) subtitle (decoders: ssa ass ) (encoders: ssa ass )
 DES... dvb_subtitle         DVB subtitles (decoders: dvbsub ) (encoders: dvbsub )
 DES... dvd_subtitle         DVD subtitles (decoders: dvdsub ) (encoders: dvdsub )
 D.S... hdmv_pgs_subtitle    HDMV Presentation Graphic Stream subtitles (decoders: pgssub )
 ..S... hdmv_text_subtitle   HDMV Text subtitle
 D.S... jacosub              JACOsub subtitle
 D.S... microdvd             MicroDVD subtitle
 D.S... mpl2                 MPL2 subtitle
 D.S... pjs                  PJS (Phoenix Japanimation Society) subtitle
 D.S... realtext             RealText subtitle
 D.S... sami                 SAMI subtitle
 ..S... srt                  SubRip subtitle with embedded timing
 ..S... ssa                  SSA (SubStation Alpha) subtitle
 D.S... stl                  Spruce subtitle format
 DES... subrip               SubRip subtitle (decoders: srt subrip ) (encoders: srt subrip )
 D.S... subviewer            SubViewer subtitle
 D.S... subviewer1           SubViewer v1 subtitle
 D.S... vplayer              VPlayer subtitle
 DES... webvtt               WebVTT subtitle




Jigdo

  • *****
  • 506
    • Zobrazit profil
Re:Převod titulků *.vtt do *.sub pro kontejner MP4
« Odpověď #3 kdy: 03. 04. 2023, 11:23:31 »
zkus místo -c:s text použít -c:s mov_text

Takze ani s "mov_text" to nefunguje ... vypada to ze neco v FFMpeg zmenili a nebo se to pokazilo

Kód: [Vybrat]
>ffmpeg -hide_banner -i fe142701fbafea054d16a1d432c4699c.vtt -c:s mov_text subtitles.ass -v verbose
Input #0, webvtt, from 'fe142701fbafea054d16a1d432c4699c.vtt':
  Duration: N/A, bitrate: N/A
  Stream #0:0: Subtitle: webvtt
File 'subtitles.ass' already exists. Overwrite? [y/N] y
[ass @ 0000026e2bc1c1c0] Exactly one ASS/SSA stream is needed.
[out#0/ass @ 0000026e2bc1c0c0] Could not write header (incorrect codec parameters ?): Invalid argument
[sost#0:0/mov_text @ 0000026e2bc1d040] Error initializing output stream:
Stream mapping:
  Stream #0:0 -> #0:0 (webvtt (native) -> mov_text (native))
    Last message repeated 1 times
[AVIOContext @ 0000026e2bc1eb80] Statistics: 0 bytes written, 0 seeks, 0 writeouts
[AVIOContext @ 0000026e2bc1acc0] Statistics: 32768 bytes read, 0 seeks


Kód: [Vybrat]
>ffmpeg -hide_banner -i fe142701fbafea054d16a1d432c4699c.vtt -c:s mov_text subtitles.srt -v verbose
Input #0, webvtt, from 'fe142701fbafea054d16a1d432c4699c.vtt':
  Duration: N/A, bitrate: N/A
  Stream #0:0: Subtitle: webvtt
File 'subtitles.srt' already exists. Overwrite? [y/N] y
[srt @ 000001a36a42c1c0] Unsupported subtitles codec: mov_text
[out#0/srt @ 000001a36a42c0c0] Could not write header (incorrect codec parameters ?): Invalid argument
[sost#0:0/mov_text @ 000001a36a42d000] Error initializing output stream:
Stream mapping:
  Stream #0:0 -> #0:0 (webvtt (native) -> mov_text (native))
    Last message repeated 1 times
[AVIOContext @ 000001a36a42eb00] Statistics: 0 bytes written, 0 seeks, 0 writeouts
[AVIOContext @ 000001a36a42acc0] Statistics: 32768 bytes read, 0 seeks

Original je tady
https://subs.channel4.com/70963_005_1/fe142701fbafea054d16a1d432c4699c.vtt


Medo77

  • ****
  • 305
    • Zobrazit profil
    • E-mail


Re:Převod titulků *.vtt do *.sub pro kontejner MP4
« Odpověď #5 kdy: 03. 04. 2023, 13:15:50 »
Citace
Original je tady
https://subs.channel4.com/70963_005_1/fe142701fbafea054d16a1d432c4699c.vtt
Aha ten soubor obsahuje na začátku nějaké podivné styly. Zkusil jsem z něho odmazat prvních 8 řádků a potom to ffmpeg bez problému převede na srt.

Jigdo

  • *****
  • 506
    • Zobrazit profil
Re:Převod titulků *.vtt do *.sub pro kontejner MP4
« Odpověď #6 kdy: 03. 04. 2023, 17:14:24 »
Citace
Original je tady
https://subs.channel4.com/70963_005_1/fe142701fbafea054d16a1d432c4699c.vtt
Aha ten soubor obsahuje na začátku nějaké podivné styly. Zkusil jsem z něho odmazat prvních 8 řádků a potom to ffmpeg bez problému převede na srt.


Dekuji pane kolego :) mate pravdu je to temi "STYLE".

Ze mne to nenapadlo drive........zkousel jsem Elgindy.VTT.to.SRT.Converter,
ktery tak na 60% udelal svou praci u cele kolekce, (ten styling ale neodebral)
ale treba u titulku z cyklu:
https://subs.channel4.com/30311_001_001_001/fd81dc528a6c05991823922436377804.vtt
na neho ten "STYLE" byl hodne a zahlasil taky chybu a neprevedl zaden titul ......


Je to divne, protoze jsem to hledal a na webu mozilly nasel popis styling u WebVTT
https://developer.mozilla.org/en-US/docs/Web/API/WebVTT_API#styling_webvtt_cues
takze jsem predpokladal ze to bude umet i FFMpeg ale neumi ..... :(


Takze napada nekoho jak prevest Styling WebVTT *.VTT titulky na *SRT z prikazove radky aniz by clovek musel ten "STYLE" manualne odebirat z kazde nahravky?
« Poslední změna: 03. 04. 2023, 17:20:04 od Jigdo »

Jigdo

  • *****
  • 506
    • Zobrazit profil
Re:Převod titulků *.vtt do *.sub pro kontejner MP4
« Odpověď #7 kdy: 03. 04. 2023, 17:33:08 »
https://gotranscript.com/subtitle-converter
?

Dekuji za tip. Je pekne ze to umi:
srt, stl, scc, ass, ssa, xml, ttml, qt, txt, vtt, dfxp, smi, csv, sub, rt, sbv

Ale otazka znela na konverzi z prikazove radky,
protoze se mi jedna o vetsi mnozstvi titulku v ruznych adresarich ....a vsechny obsahuji Styling WebVTT.

Re:Převod titulků *.vtt do *.sub pro kontejner MP4
« Odpověď #8 kdy: 03. 04. 2023, 20:43:06 »
Citace
Takze napada nekoho jak prevest Styling WebVTT *.VTT titulky na *SRT z prikazove radky aniz by clovek musel ten "STYLE" manualne odebirat z kazde nahravky?
Ty vtt titulky mají takovou zvláštnost, že v tom style na začátku nemají ani jeden řádek který začíná číslem. Toho bych využil a zkusil bych to oseknout automaticky. Nějak takto:
for f in *.vtt; do l=$(grep -nm1 '^[0-9]' "$f" | cut -f1 -d:); tail -n+$l $f | ffmpeg -f webvtt -i pipe: $(basename -s .vtt $f).srt; done

Vím že je to docela prasečina to takto detekovat, ale na tom vzorku cos poslal jako odkazy mi to funguje.

Jigdo

  • *****
  • 506
    • Zobrazit profil
Re:Převod titulků *.vtt do *.sub pro kontejner MP4
« Odpověď #9 kdy: 06. 04. 2023, 16:14:13 »
Citace
Takze napada nekoho jak prevest Styling WebVTT *.VTT titulky na *SRT z prikazove radky aniz by clovek musel ten "STYLE" manualne odebirat z kazde nahravky?
Ty vtt titulky mají takovou zvláštnost, že v tom style na začátku nemají ani jeden řádek který začíná číslem. Toho bych využil a zkusil bych to oseknout automaticky. Nějak takto:
for f in *.vtt; do l=$(grep -nm1 '^[0-9]' "$f" | cut -f1 -d:); tail -n+$l $f | ffmpeg -f webvtt -i pipe: $(basename -s .vtt $f).srt; done

Vím že je to docela prasečina to takto detekovat, ale na tom vzorku cos poslal jako odkazy mi to funguje.

DIky, Otestuji az najdu cas presunout vsechen ten obsah na media server (bohuzel ten scrip na stahovani z Ch4 funguje jen pod Windows) kde momentalne ty haravky mam :(