2019-07-07


FFplay Linux portable,music and video with subtitles

FFplay чете видео със субтитри и плейва музикални файлове в Linux системи.Не съм срещал по-семпъл интерфейс който може това. Заедно с ffprobe оформят FFmpeg фамилията. EDIT на 11.02.2021 г. ✂️
Събрах нов, преносим вариант download 📥️ (git clone N-101013-ga00ff56321). Използвам го за бърз преглед на video и прослушане на музика. В зависимост от възможностите на кодека влиза в multithreaded mode, без излишно да товари процесора, i7 870 @ 2.93GHz. След изтегляне е нужно да се дадат нужните права, за да се изпълнява като програма. Трябва да работи на всяка 64-битова Linux платформа с абревиатура x86_64, AMD64, x64. Включително от ffplay 4.1, към всички следващи версии се добавя поддръжка на video codec AV1. В този пример се използва encoder Lavc58.29.100 и libdav1d 0.7.0. Най лесно ще бъде ако ( .sh ) файловете в tar архива се изпълняват с xterm - (X terminal emulator). Още информация и 📎️ тук
sudo apt install xterm
За справка относно създаване на static executable вижте StaticX , на Jonathon Reinhart. github.com/JonathonReinhart
open-sh-with-xterm
git clone git://source.ffmpeg.org/ffmpeg ffmpeg
git pull --rebase
Компилиранe, опции ... Само системните библиотеки се разпознават автоматично. Всички останали външни библиотеки трябва да бъдат допълнително активирани, инсталирани.
./configure --prefix=/usr --enable-vaapi --enable-vdpau --enable-sdl2 --enable-libdav1d --enable-libaom --enable-opengl --enable-vulkan --enable-libass --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libbluray --enable-libgsm --enable-libpulse --enable-libgme --enable-libcaca --enable-alsa --enable-librtmp --enable-libspeex --enable-libssh --enable-libtheora --enable-libvorbis --enable-libxvid --enable-gcrypt --enable-gpl --enable-gnutls --enable-ladspa --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtwolame --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-nonfree --enable-openal --enable-libfdk-aac --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-frei0r --enable-libx264

ffplay-linux-terminal-metadata-libdav1d
4K-2160p-60fps-sensors-preference
av1-hd-6.8mbps-sensors-preference
Под CentOS 6 не успях да подкарам Windows-1251 субтитри и се наложи да ги конвертирам до UTF-8. Тук действам със статична версия на uchardet , за да определя енкодинга на субтитрите download 📥️
nick@nick ~ $ uchardet_static mysubtitles.srt
При отговора, който получавам в този пример те са с Cyrillic-Windows1251 кодировка За преобразуване към UTF-8 използвам iconv, която си идва с инсталацията на всяка Linux система.
iconv -f windows-1251 -t utf-8 mysubtitles.srt > sub.srt
mysubtitles.srt е името на съществуващите субтитри - sub.srt е новото име,което им давам при конвертирането. За улеснение в моята домашна директория ще създам папка с име "bin". Вътре попадат пакетите ffplay и uchardet static. Така избягвам нуждата от префикса ./ и мога да ги извикам през терминал, без да изписвам път до тях. Възможно е да се наложи еднократен "Log out". В този сценарий всички файлове от примерите по-долу се намират в моята $HOME директория.

Гледане на видео със субтитри:

ffplay -threads 2 -vf subtitles=filename=sub.srt:charenc=UTF-8:force_style=Fontsize=12 -autoexit video.mkv
Тук "sub.srt" е реалното име на файла със субтитри,video.mkv е име на тест видеото.При нужда, ако случайно има проблем при възпроизвеждане, нека се преименуват с еднакви titles в една и съща директория.

Само видео:

ffplay -threads 2 -fs -autoexit video.mp4

Прослушване на песен:

ffplay -f lavfi -autoexit amovie=test.flac

Прослушване на песен
при сила на звука 0.1:

ffplay -af volume=0.1 -autoexit test.flac

Прослушване на песен с визуализация:

ffplay -f lavfi -autoexit 'amovie=test.mp3, asplit [a][out1]; [a] showcqt [out0]'

... или ...

ffplay -f lavfi -autoexit 'amovie=test.flac, asplit [a][out1];[a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'

Съществуващият звук в mkv се замества с друг,в този пример flac аудио:

ffplay -autoexit -f lavfi -autoexit "movie=video.mkv[out0];amovie=test.flac[out1]"
Последователно прослушване на няколко мултимедийни файла с различни разширения (flac, mp3, wav ...), намиращи се в $HOME. В скобите може да се добавят или премахват file extensions. Клавиш "w" визуализира аудио вълни. При натиснат q или ESC клавиш, се преминава към следваща песен или видео клип:
for f in *.{flac,mp3,wav,mkv,webm,ts,mp4} ; do ./ff -threads 2 -fs -autoexit "$f"; done
for f in *.{flac,mp3,wav,mkv,webm,ts,mp4} ; do ffplay -threads 2 -fs -autoexit "$f"; done
Hotkeys:
q, ESC - изход
w - визуализира аудио вълни
f - Full Screen
p или SPC - пауза
Използване на стрелките и клавиши page down/page up за придвижване - напред-назад.

https://ffmpeg.org/ffplay

ffmpeg capture desktop

mplayer static

ffplay-static 2.8.15 old version download 📥️

Метаданни от CentOS 6 терминал при изпълнено видео със субтитри.

Metadata:
encoder : libebml v1.3.0 + libmatroska v1.4.1
Duration: 02:50:51.81, start: 0.000000, bitrate: 1236 kb/s
Stream #0:0: Video: hevc (Main), yuv420p(tv), 720x544, SAR 1:1 DAR 45:34, 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default)
Stream #0:1: Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s (default)
[Parsed_subtitles_0 @ 0x7f3bc40ed000] Shaper: FriBidi 0.19.7 (SIMPLE) HarfBuzz-ng 1.0.1 (COMPLEX)
Fontconfig warning: "/etc/fonts/conf.d/25-ttf-arphic-uming-bitmaps.conf", line 11: Having multiple values in test isn't supported and may not work as expected
Fontconfig warning: "/etc/fonts/conf.d/30-metric-aliases.conf", line 102: Having multiple family in alias isn't supported and may not work as expected
Fontconfig warning: "/etc/fonts/conf.d/40-nonlatin.conf", line 33: Having multiple family in alias isn't supported and may not work as expected
Fontconfig warning: "/etc/fonts/conf.d/44-wqy-zenhei.conf", line 11: Having multiple values in test isn't supported and may not work as expected
Fontconfig warning: "/etc/fonts/conf.d/45-latin.conf", line 23: Having multiple family in alias isn't supported and may not work as expected
Fontconfig warning: "/etc/fonts/conf.d/65-kurdit-unikurd-web.conf", line 16: Having multiple values in test isn't supported and may not work as expected
Unable to update the static FcBlanks: 0x0600
Fontconfig warning: "/etc/fonts/conf.d/65-0-khmeros-base.conf", line 53: Having multiple values in test isn't supported and may not work as expected
Fontconfig warning: "/etc/fonts/conf.d/65-0-un-core-dotum.conf", line 8: Having multiple values in test isn't supported and may not work as expected
Fontconfig warning: "/etc/fonts/conf.d/65-1-vlgothic-gothic.conf", line 23: Having multiple values in test isn't supported and may not work as expected
[Parsed_subtitles_0 @ 0x7f3bc40ed000] Using font provider fontconfig
[Parsed_subtitles_0 @ 0x7f3bc40ed000] fontselect: (Arial, 400, 0) -> /usr/share/fonts/liberation/LiberationSans-Regular.ttf, 0, LiberationSans
[Parsed_subtitles_0 @ 0x7f3bc40ed000] fontselect: (Arial, 400, 100) -> /usr/share/fonts/liberation/LiberationSans-Italic.ttf, 0, LiberationSans-Italic


Няма коментари :

Публикуване на коментар

Забележка: Само членове на този блог могат да публикуват коментари.