It is as simple as it sounds: Just provide the teletext page and here we go:
./ffmpeg -txt_format text -txt_page 150 -i inputFile.ts outputSubtitles.ger.srt
- txt_page 150 is the page number of the subtitle. Typically is the page shown at the beginning of a show. Otherwise you have to find them on your own. My suggestion: Use the VLC player! It can visualise the Teletext right in the video area.
- txt_format text since we want a plain text file (subrip)
This produced in my case a broken subtitle file:
1 00:00:02,280 --> 1193:02:49,575 Some Text 2 00:00:05,520 --> 1193:02:52,815 Some Text 3 00:00:09,360 --> 1193:02:56,655 Some Text
You see the end timestamp: 1193:02:49,575 This is definitely broken.
If you have also this broken end timestamp try to use the parameter –fix_sub_duration.
1 00:00:02,280 --> 00:00:04,280 Some Text 2 00:00:05,520 --> 00:00:08,280 Some Text 3 00:00:09,360 --> 00:00:14,520 Some Text
Required is a FFmpeg with enabled libzvbi. Simply run the following command and check the configuration section for the codec.
./ffmpeg
This shows in my case:
configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
Thank you, Martin!
I do see broken end timestamps in the resulting .srt file from running the commandline:
ffmpeg -txt_format text -i test.ts test.srt
Example:
1
00:00:01,820 –> 1193:02:49,115
Harrison.
What command line did you use to fix this? I’ve tried putting –fix_sub_duration into my command line at various positions and none seem to be acceptable.
Thank you!
For me it’s: ffmpeg -txt_format text -txt_page 150 -fix_sub_duration -i file.ts file.srt