| Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
| Поделиться |
11.1.2018, 20:10
Сообщение
#1
|
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: 1
|
Включил два ноутбука с дисплеями разных пропорций и достал костыллятор:
Всё что ниже, потенциально предназначено для консольных дистрибутивов повседневного пользовательского уровня с уровнем пользователя от среднего и ниже. А также поиск путей упрощения запуска медиаконтента в консоли. С доведением консольных систем до повседневного использования. Первый скрипт: Воспроизводит все видеофайлы с любыми пропорциями на дисплеях с любыми пропорциями. Формат запуска: Код $ mplayer-vc /путь/к/видеофайлу На дух не переносит пробелов в пути: $@ отдельные куски полного пути разделённые пробелами воспринимает как отдельные параметры и режет бэкслэши. Как справиться с этим не знаю. Листинг скрипта: Код $ cat ~/mplayer-vc #!/bin/bash VIDEOFILE=$(echo "$@") # Разрешение оригинального видеофайла по X VIDEOWIDTH=`mediainfo $VIDEOFILE | grep 'Width' | awk '{printf $3}'` # Разрешение оригинального видеофайла по Y VIDEOHEIGHT=`mediainfo $VIDEOFILE | grep 'Height' | awk '{printf $3}'` # Пропорции изоражения видео в десятичном виде ASPECTMP=`mediainfo $VIDEOFILE | grep 'Display aspect ratio' | rev | awk '{printf $1}' | rev | sed 's/:/\//'` VIDEOASPECT=`echo $ASPECTMP | bc -l | sed 's/^\(......\).*/\1/'` # Пропорции фреймбуфера в десятичном виде FBASPECT=`fbset --test | grep mode | awk -F '"' '{print $2}' | sed 's/x/\//' | bc -l |sed 's/^\(......\).*/\1/'` # Разрешение фреймбуфера по Y в пикселах FBHEIGHT=`fbset --test | grep mode | awk -F '"' '{print $2}' | awk -F 'x' '{printf $2}'` # Если видеофайл с пропорциями 4x3 воспроизводится в widescreen мониторе, то # вычислить коэффициент масштабирования до Y фреймбуфера # и далее использовать этот коэффициент # для получения предела промасштабирования видео по X if [ "$VIDEOASPECT" == 1.3333 -a "$FBASPECT" > 1.3333 ]; then VSIZEXXX=`echo "$FBHEIGHT/$VIDEOHEIGHT" | bc -l` XVSIZE=`echo "$VIDEOWIDTH*$VSIZEXXX" | bc -l` # иначе вычислить X фреймбуфера else XVSIZE=`fbset --test|grep geometry|awk '{print $2}'` fi # пропорционально масштабировать по коэффициенту # до X фреймбуфера, - в переменной XVSIZE setterm --blank 0; mplayer -nocache -softvol -xy $XVSIZE -fs -zoom $VIDEOFILE &>/dev/null XVSIZE (переменная): X - координата V - видео, видеофайл SIZE - размер собственно XVSIZE - размер видео в пикселах в полный экран по координате X Другой вариант этой мысли упрощения просмотра видеофайлов в консоли: Это использовать алиас Код $ ls -l /etc/bashrc.d/mplayer.sh -rwxr-xr-x 1 root root 110 янв 11 18:43 /etc/bashrc.d/mplayer.sh Код $ cat /etc/bashrc.d/mplayer.sh alias mplayer-vofbdev="setterm --blank 0; mplayer -nocache -softvol -xy $(fbset --test|grep geometry|awk '{print $2}') -fs -zoom &>/dev/null" Формат запуска для просмотра видео в консоли Код $ mplayer-vofbdev /путь/к\ какому\ то\ видео\ файлу Достоинства: Промасштабирует видео в плюс или минус до разрешения фреймбуфера. Обрабатывает пробелы в пути. Недостаток: На дух не переваривает воспроизведение видео с пропорциями 4x3 в widescreen мониторе. Суть проблемы: -xy N масштабирует по X до размера фреймбуфера по X и если видео по Y выходит за пределы координаты, mplayer откажется отображать видео. При просмотре видеофайла с пропорцией 4x3 на widescreen мониторе, сначала требуется масштабировать по Y и пропорционально масштабировать по X. Предварительно запросив разрешение и пропорции видеофайла. Такие вот невесёлые пирожки с котятами... Сообщение отредактировал speccyfighter - 12.1.2018, 11:50 |
|
|
|
![]() |
27.11.2019, 9:40
Сообщение
#2
|
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: 1
|
Похоже есть способ получше чем mediainfo:
Идентификация видеофайла(ов) Видеофайлы Код $ mplayer -identify -vo null -ao null -frames 0 /home/tos-1720x720-cfg01.mkv | sed -n 's/^ID_//p' VIDEO_ID=0 AUDIO_ID=0 AID_0_LANG=eng SUBTITLE_ID=0 SID_0_LANG=hrv SUBTITLE_ID=1 SID_1_LANG=cze SUBTITLE_ID=2 SID_2_LANG=dan SUBTITLE_ID=3 SID_3_LANG=ger SUBTITLE_ID=4 SID_4_LANG=eng SUBTITLE_ID=5 SID_5_LANG=spa SUBTITLE_ID=6 SID_6_LANG=fre SUBTITLE_ID=7 SID_7_LANG=gre SUBTITLE_ID=8 SID_8_LANG=heb SUBTITLE_ID=9 SID_9_LANG=hun SUBTITLE_ID=10 SID_10_LANG=ind SUBTITLE_ID=11 SID_11_LANG=ita SUBTITLE_ID=12 SID_12_LANG=jpn SUBTITLE_ID=13 SID_13_LANG=dut SUBTITLE_ID=14 SID_14_LANG=nor SUBTITLE_ID=15 SID_15_LANG=per SUBTITLE_ID=16 SID_16_LANG=pol SUBTITLE_ID=17 SID_17_LANG=por SUBTITLE_ID=18 SID_18_LANG=rus SUBTITLE_ID=19 SID_19_LANG=chi VIDEO_CODEC=ffhevc CLIP_INFO_NAME0=encoder CLIP_INFO_VALUE0=libebml v1.3.0 + libmatroska v1.4.1 CLIP_INFO_NAME1=creation_time CLIP_INFO_VALUE1=2014-03-18T13:19:29.000000Z CLIP_INFO_N=2 FILENAME=/home/tos-1720x720-cfg01.mkv DEMUXER=lavfpref VIDEO_FORMAT=HEVC VIDEO_BITRATE=0 VIDEO_WIDTH=1720 VIDEO_HEIGHT=720 VIDEO_FPS=24.000 VIDEO_ASPECT=0.0000 AUDIO_FORMAT=8192 AUDIO_BITRATE=448000 AUDIO_RATE=48000 AUDIO_NCH=6 START_TIME=0.00 LENGTH=734.17 SEEKABLE=1 CHAPTERS=0 [ac3 @ 0x7ff28f7c9260]Channel layout '5.1(side)' with 6 channels does not match specified number of channels 2: ignoring specified channel layout AUDIO_BITRATE=448000 AUDIO_RATE=48000 AUDIO_NCH=2 AUDIO_CODEC=ffac3 EXIT=EOF Код $ mplayer -identify -vo null -ao null -frames 0 /home/Trace\ Adkins\ -\ Just\ Fishin\'.mp4 | sed -n 's/^ID_//p' VIDEO_ID=0 AUDIO_ID=0 VIDEO_CODEC=ffh264 CLIP_INFO_NAME0=major_brand CLIP_INFO_VALUE0=mp42 CLIP_INFO_NAME1=minor_version CLIP_INFO_VALUE1=0 CLIP_INFO_NAME2=compatible_brands CLIP_INFO_VALUE2=isommp42 CLIP_INFO_NAME3=creation_time CLIP_INFO_VALUE3=2014-03-07T11:47:19.000000Z CLIP_INFO_N=4 FILENAME=/home/Trace Adkins - Just Fishin'.mp4 DEMUXER=lavfpref VIDEO_FORMAT=H264 VIDEO_BITRATE=581008 VIDEO_WIDTH=640 VIDEO_HEIGHT=360 VIDEO_FPS=24.000 VIDEO_ASPECT=0.0000 AUDIO_FORMAT=MP4A AUDIO_BITRATE=95992 AUDIO_RATE=44100 AUDIO_NCH=2 START_TIME=0.00 LENGTH=210.05 SEEKABLE=1 CHAPTERS=0 AUDIO_BITRATE=95992 AUDIO_RATE=44100 AUDIO_NCH=2 AUDIO_CODEC=ffaac EXIT=EOF Код $ mplayer -identify -vo null -ao null -frames 0 ./avi4test.avi | sed -n 's/^ID_//p' VIDEO_ID=0 AUDIO_ID=1 VIDEO_CODEC=ffh264 CLIP_INFO_NAME0=Software CLIP_INFO_VALUE0=Lavf56.25.101 CLIP_INFO_N=1 FILENAME=./avi4test.avi DEMUXER=avi VIDEO_FORMAT=H264 VIDEO_BITRATE=293032 VIDEO_WIDTH=640 VIDEO_HEIGHT=360 VIDEO_FPS=59.940 VIDEO_ASPECT=0.0000 AUDIO_FORMAT=255 AUDIO_BITRATE=95992 AUDIO_RATE=0 AUDIO_NCH=0 START_TIME=0.00 LENGTH=790.72 SEEKABLE=1 CHAPTERS=0 AUDIO_BITRATE=95992 AUDIO_RATE=44100 AUDIO_NCH=2 AUDIO_CODEC=ffaac EXIT=EOF ASCII файл Код $ mplayer -identify -vo null -ao null -frames 0 /home/abcde.txt | sed -n 's/^ID_//p' VIDEO_ID=0 VIDEO_CODEC=ffansi SUB: Could not determine file format Cannot load subtitles '/home/abcde.txt'. FILENAME=/home/abcde.txt DEMUXER=lavf VIDEO_FORMAT=TXT4 VIDEO_BITRATE=0 VIDEO_WIDTH=640 VIDEO_HEIGHT=400 VIDEO_FPS=25.000 VIDEO_ASPECT=0.0000 START_TIME=0.00 LENGTH=0.04 SEEKABLE=1 CHAPTERS=0 EXIT=EOF Каталог Код $ mplayer -identify -vo null -ao null -frames 0 /home/tester | sed -n 's/^ID_//p' File not found: '/home/tester' Failed to open /home/tester. EXIT=EOF Сходство/различие, в наличии/отсутствии секции CLIP_INFO_*. У видеофайлов она есть. А парсить X и Y файла на три порядка проще чем в выбросе уродского mediainfo. В этих же выбросах, сухо, кратко, но по-сути и всё для вас. Тьфу, - для парсинга. Выдернуто тут: Код /usr/lib/mc/ext.d/video.sh #!/bin/sh # $1 - action # $2 - type of file action=$1 filetype=$2 [ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open" do_view_action() { filetype=$1 case "${filetype}" in *) if mplayer >/dev/null 2>&1; then mplayer -identify -vo null -ao null -frames 0 "${MC_EXT_FILENAME}" 2>&1 | \ sed -n 's/^ID_//p' elif which mpv_identify.sh >/dev/null 2>&1; then mpv_identify.sh "${MC_EXT_FILENAME}" else echo "Please install either mplayer or mpv to get information for this file" fi ;; esac } Ну и следом с применением команды Код $ mplayer -identify -vo null -ao null -frames 0 /path/to/videofile 2>&1 | \ sed -n 's/^ID_//p' Нет ничего проще, - перенаправляй в переменную и дёргай из неё. Формат выбросов прост и предсказуем как две копейки. И видно что люди делали для людей. И так же отсечь каталоги: Код $ man test | sed -n '3,12p; 82,84p' NAME test - check file types and compare values SYNOPSIS test EXPRESSION test [ EXPRESSION ] [ ] [ OPTION -d FILE FILE exists and is a directory Проверка на каталог Код $ cat test-dirs.sh #!/bin/bash # Checking for a directory if test -d "$@"; then echo -e "\nThis is the directory\n" fi Код $ sh ./test-dirs.sh ../tester This is the directory Соответственно проверка на файл Код [ ~]$ cat 123.sh #!/bin/bash # Checking for a directory if test -d "$@" then echo >/dev/null else echo -e "\nfile\n" fi Код [ ~]$ sh 123.sh /home/tester/ [ ~]$ Код [ ~]$ sh 123.sh /home/abcde.txt file Сообщение отредактировал speccyfighter - 27.11.2019, 11:19 |
|
|
|
speccyfighter mplayer в консоли 11.1.2018, 20:10
kostyalamer Юра, может из первого скрипта собрать пакет, чтобы... 12.1.2018, 8:41
speccyfighter Цитата(kostyalamer @ 12.1.2018, 6:41) Фиг... 12.1.2018, 11:32
kostyalamer Юра, пакет я собрал, проверил и залил в p8 32-бита... 12.1.2018, 20:48
speccyfighter Цитата(kostyalamer @ 12.1.2018, 18:48) Юр... 13.1.2018, 9:50
speccyfighter Ничему и никому не доверяй.
Доверяй только термина... 13.1.2018, 10:19
dango_ Мне подождать опакечивание новой версии? 13.1.2018, 11:36
speccyfighter Цитата(dango_ @ 13.1.2018, 9:36) Мне подо... 13.1.2018, 11:37
speccyfighter Линукс, ты тупой как пень стоеросовый.
Я из-за теб... 13.1.2018, 21:45
speccyfighter Новая версия mplayer-vc-0.2
Изменения в версии 0.... 13.1.2018, 23:55
speccyfighter Изменён скрипт mplayer-vc
Код$ sdiff -w 230 ... 11.6.2018, 13:36
speccyfighter Скрипт проигрывает только локальные файлы.
Но скаж... 11.6.2018, 14:39
speccyfighter Окончательный вариант скрипта mplayer-vc v0.2.1
И... 12.6.2018, 14:23
kostyalamer Цитата(speccyfighter @ 12.6.2018, 14:23) ... 12.6.2018, 20:45
speccyfighter mplayer-vc (Movie Player for Virtual Console) для ... 28.10.2019, 22:08
knn Цитата(speccyfighter @ 11.1.2018, 20:10) ... 31.10.2019, 23:09
knn # потом уже увидел дату первого сообщения ( не зна... 1.11.2019, 6:59
kostyalamer Спасибо Юра, проверил - отлично работает ! При... 4.11.2019, 8:46
speccyfighter Цитата(kostyalamer @ 4.11.2019, 6:46) Спа... 5.11.2019, 23:25
YYY Цитата(speccyfighter @ 5.11.2019, 23:25) ... 6.11.2019, 12:15

speccyfighter Цитата(YYY @ 6.11.2019, 10:15) а может пр... 6.11.2019, 20:23

speccyfighter Цитата(speccyfighter @ 6.11.2019, 18:23) ... 6.11.2019, 21:05
kostyalamer Цитата(speccyfighter @ 5.11.2019, 23:25) ... 6.11.2019, 21:48
kostyalamer Юра, вот vo из mplayer-а играющего из под qtermina... 6.11.2019, 22:42
speccyfighter Цитата(kostyalamer @ 6.11.2019, 20:42) Юр... 7.11.2019, 0:01
speccyfighter Система на alt-p8-sysv-tde-i586:
Тест в tty и pts ... 7.11.2019, 6:49
kostyalamer Цитата(speccyfighter @ 7.11.2019, 6:49) С... 7.11.2019, 8:28
speccyfighter Цитата(kostyalamer @ 7.11.2019, 6:28) Цит... 7.11.2019, 19:50
speccyfighter Оттестировал последнюю версию скрипта на этом лайв... 7.11.2019, 20:37
kostyalamer Юра, хз чего там в Альте, но в Арче твой скрипт пр... 7.11.2019, 20:52
speccyfighter Цитата(kostyalamer @ 7.11.2019, 18:52) Юр... 7.11.2019, 21:17
knn Цитата(kostyalamer @ 7.11.2019, 20:52) Юр... 25.11.2019, 9:34
kostyalamer Цитата(knn @ 25.11.2019, 9:34) и в Links... 25.11.2019, 22:10
speccyfighter Потрахался в лайве
Код$ cat /image/.disk/info... 8.11.2019, 21:05
kostyalamer Да, не слабо , жуть какая то. Видимо простой лин... 8.11.2019, 22:16
speccyfighter Цитата(kostyalamer @ 8.11.2019, 20:16) Да... 8.11.2019, 22:36
speccyfighter Цитата(kostyalamer @ 8.11.2019, 20:16) на... 8.11.2019, 22:56
kostyalamer Цитата(speccyfighter @ 8.11.2019, 22:56) ... 8.11.2019, 23:29
speccyfighter Хорошо. Так и порешили. Как доведу шэлл-код до ума... 8.11.2019, 23:37
speccyfighter Скрипт mplayer-vc переведён, исправлен и готов в т... 9.11.2019, 2:32
speccyfighter Завершающий этап тестирования в p8-sysv-tde и p9-x... 11.11.2019, 8:10
kostyalamer Цитата(speccyfighter @ 11.11.2019, 8:10) ... 11.11.2019, 8:29
speccyfighter Цитата(kostyalamer @ 11.11.2019, 6:29) Ка... 12.11.2019, 0:38
speccyfighter Было "хорошо", стало "ещё лучше... 11.11.2019, 10:21
speccyfighter Сейчас на прогоне этот скрипт. Прошёл тест на IceA... 11.11.2019, 10:44
kostyalamer Тогда так наверное и сделаем в Арче будет mplayer-... 12.11.2019, 8:51
speccyfighter Цитата(kostyalamer @ 12.11.2019, 6:51) Да... 13.11.2019, 3:46

kostyalamer Цитата(speccyfighter @ 13.11.2019, 3:46) ... 13.11.2019, 8:22
speccyfighter Цитата(kostyalamer @ 12.11.2019, 6:51) Да... 13.11.2019, 4:34
kostyalamer Юра , вот пакет : https://yadi.sk/d/wpOpaxqCL9j4d... 13.11.2019, 23:30
speccyfighter Цитата(kostyalamer @ 13.11.2019, 21:30) Ю... 14.11.2019, 7:11
kostyalamer Нет исходники лежат тут : http://altlinuxclub.ru/a... 14.11.2019, 8:06
kostyalamer Юра, твой скрипт в Aur-е : https://aur.archlinux.o... 14.11.2019, 23:58
kostyalamer В связи с недавно изменившимся стандартом : https:... 15.11.2019, 17:07
speccyfighter Цитата(kostyalamer @ 15.11.2019, 15:07) В... 16.11.2019, 1:33
speccyfighter Масса полезнейшего инфо по bash (для mplayer-vc)
... 24.11.2019, 0:39
speccyfighter Обработчик указанного пути для mplayer-vc:
Код... 24.11.2019, 12:24
YYY Цитата(speccyfighter @ 24.11.2019, 12:24)... 24.11.2019, 16:43
speccyfighter Код$ cat mplayer-vc-N02--single-or-many
# One... 25.11.2019, 0:23
speccyfighter Число, это математическая величина и пишется она б... 27.11.2019, 7:36
speccyfighter Обработчик нажатия клавиши Qq для выхода из бескон... 28.11.2019, 10:10
speccyfighter mplayer-vc версии 0.4.0
Код#!/bin/bash
# mp... 28.11.2019, 13:48
speccyfighter Ещё один недостаток mplayer-vc 0.4.0
- Субтитры в... 28.11.2019, 20:22
kostyalamer Отправил в Aur : https://aur.archlinux.org/package... 28.11.2019, 21:32
speccyfighter Цитата(kostyalamer @ 28.11.2019, 19:32) О... 28.11.2019, 21:50
kostyalamer Цитата(speccyfighter @ 28.11.2019, 21:50)... 28.11.2019, 22:04
speccyfighter Цитата(kostyalamer @ 28.11.2019, 20:04) В... 28.11.2019, 23:30
knn - у меня нет звука (и его регулировки) ни в Х, ни ... 29.11.2019, 8:16
knn как снять выхлоп( "беззвучный") - не зна... 29.11.2019, 8:33
kostyalamer У меня в консоли все нормально, звук есть , а в X-... 29.11.2019, 8:35
knn Цитата(kostyalamer @ 29.11.2019, 8:35) PS... 29.11.2019, 8:39
speccyfighter Цитата(kostyalamer @ 29.11.2019, 6:35) У ... 29.11.2019, 19:24
kostyalamer Цитата(speccyfighter @ 29.11.2019, 19:24)... 29.11.2019, 19:46
speccyfighter В лайве IceArch-0.988 у меня всё намного хуже чем ... 30.11.2019, 8:14
kostyalamer Юра, xterm есть в ледяном, но он не дружит с кирил... 30.11.2019, 8:47
speccyfighter Цитата(kostyalamer @ 30.11.2019, 6:47) На... 30.11.2019, 9:47
kostyalamer Цитата(speccyfighter @ 30.11.2019, 9:47) ... 30.11.2019, 10:38
kostyalamer ЦитатаНо будем оптимистами smile.gif - у меня всё ... 30.11.2019, 9:26
speccyfighter В секцию выбора устройства вывода, в версию 0.35, ... 14.7.2020, 14:12
speccyfighter Секция должна выглядеть где-то так:
Код# Option / ... 23.7.2020, 17:20
speccyfighter Полный листинг mplayer-vc v0.36.1
Код#!/bin/ba... 23.7.2020, 17:46
speccyfighter Проверил в альте версию 0.36.
При воспроизведении,... 23.7.2020, 21:24
speccyfighter Цитата(speccyfighter @ 23.7.2020, 19:24) ... 23.7.2020, 21:55
kostyalamer Цитата(speccyfighter @ 23.7.2020, 21:55) ... 23.7.2020, 22:11
speccyfighter Цитата(kostyalamer @ 23.7.2020, 20:11) Юр... 23.7.2020, 22:26
kostyalamer Цитата(speccyfighter @ 23.7.2020, 22:26) ... 23.7.2020, 22:35
kostyalamer Собрал пакет , погонял на рабочей системе в чистой... 24.7.2020, 8:51
kostyalamer К сожалению aur немного прилег :
Цитата503 - Servi... 24.7.2020, 22:56
kostyalamer Залил в Aur : https://aur.archlinux.org/packages/m... 25.7.2020, 1:07
knn Так, к слову, чтоб не было прецедентов по окончате... 25.7.2020, 17:19
speccyfighter Цитата(knn @ 25.7.2020, 15:19) Так, к сло... 25.7.2020, 19:19
knn Цитата(speccyfighter @ 25.7.2020, 19:19) ... 25.7.2020, 19:29
knn Юрий, тут тогда вопрос по "смежной теме... 25.7.2020, 19:57
speccyfighter Про screen я не в курсе. О нём у меня представлени... 25.7.2020, 22:54
knn падение Иксов от `mpv --vo=drm file` - сей... 26.7.2020, 4:39
speccyfighter Цитата(knn @ 26.7.2020, 2:39) `mpv --... 26.7.2020, 13:04
knn - получается относительно давно с iptv-mplayer-con... 26.7.2020, 7:30
speccyfighter Цитата(knn @ 26.7.2020, 5:30) pps
с запущ... 26.7.2020, 13:30
knn - кроме азбуки похоже пригодятся и инструменты ( р... 26.7.2020, 14:08![]() ![]() |
|
Текстовая версия | Сейчас: 9.11.2025, 18:21 |