|
|||||||
Запекание субтитров в FFMPEG с несколькими фильтрами
Время создания: 22.09.2021 00:19
Текстовые метки: ffmpeg, субтитры, титры, srt, запекание, впечатывание, поверх, фильтр
Раздел: Компьютер - Linux - Видео в Linux - FFmpeg
Запись: xintrea/mytetra_syncro/master/base/1632259155lt4zdz8oee/text.html на raw.github.com
|
|||||||
|
|||||||
Чтобы "запечь" субтитры в видео в виде изображений надписей поверх картинки, можно воспользоваться следующими способом. Во-первых, надо проверить, чтобы ffmpeg был собран с поддержкой библиотеки libass, которая отвечает за рендеринг субтитров. Сделать это можно путем запуска команды ffmpeg без параметров. В ответ будет показана информация о ffmpeg: > ffmpeg ffmpeg version 4.1.6 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 8 (Debian 8.3.0-6) configuration: --disable-decoder=amrnb --disable-decoder=libopenjpeg --disable-libopencv --disable-outdev=sdl2 --disable-podpages --disable-sndio --disable-stripping --enable-libaom --enable-avfilter --enable-avresample --enable-gcrypt --disable-gnutls --enable-openssl --enable-gpl --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libilbc --enable-libkvazaar --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx265 --enable-libzimg --enable-libxvid --enable-libzvbi --enable-nonfree --enable-opencl --enable-opengl --enable-postproc --enable-pthreads --enable-shared --enable-version3 --enable-libwebp --incdir=/usr/include/x86_64-linux-gnu --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --toolchain=hardened --enable-frei0r --enable-chromaprint --enable-libx264 --enable-libiec61883 --enable-libdc1394 --enable-vaapi --enable-libmfx --enable-libvmaf --disable-altivec --shlibdir=/usr/lib/x86_64-linux-gnu libavutil 56. 22.100 / 56. 22.100 libavcodec 58. 35.100 / 58. 35.100 libavformat 58. 20.100 / 58. 20.100 libavdevice 58. 5.100 / 58. 5.100 libavfilter 7. 40.101 / 7. 40.101 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 3.100 / 5. 3.100 libswresample 3. 3.100 / 3. 3.100 libpostproc 55. 3.100 / 55. 3.100 Hyper fast Audio and Video encoder usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... Если в строке configuration имеется пункт --enable-libass, то значит ffmpeg собран с поддержкой libass, и запекание субтитров будет работать. За наложение субтитров виде картинки отвечает видеофильтр subtitles. В качестве первого параметра ему можно указывать файл, из которого необходимо субтитры брать. Помимо фильтра субтитров можно указывать и другие фильтры, например фильтр изменения размера видео. Фильтры применяются по цепочке, друг за другом. Кстати, ffmpeg не поймет, если ему дать несколько опций -vf с разными фильтрами. ffmpeg понимает только одну опцию -vf, в которой фильтры перечислены через запятую. Чтобы это было возможным, весь перечень фильтров заключают в двойные кавычки. Для имен файлов, внутри двойных кавычек можно использовать одинарные кавычки (апострофы). Если ошибиться или по незнанию пытаться сделать несколько опций -vf, то будет применен только последний фильтр. Но никаких сообщений об ошибке, что фильтры заданы неправильно, ffmpeg не покажет. Поэтому итоговый результат может отличаться от желаемого, а причина будет неочевидна. Итоговая команда для запекания субтитров может выглядеть так: ffmpeg -i input.avi -vf "subtitles='../subtitle/subtitle_15.srt', scale=1280:720" -c:v libx264 -preset slow -crf 12 -threads 8 -c:a copy output.avi Еще раз: этот метод отличается от метода, когда субтитры просто добавляются в "текстовом" виде в виде потока, и во время воспроизведения рендерятся самим видеоплеером. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|