![]() |
Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Поделиться |
![]()
Сообщение
#1
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Включил два ноутбука с дисплеями разных пропорций и достал костыллятор:
Всё что ниже, потенциально предназначено для консольных дистрибутивов повседневного пользовательского уровня с уровнем пользователя от среднего и ниже. А также поиск путей упрощения запуска медиаконтента в консоли. С доведением консольных систем до повседневного использования. Первый скрипт: Воспроизводит все видеофайлы с любыми пропорциями на дисплеях с любыми пропорциями. Формат запуска: Код $ 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 |
|
|
![]() |
![]()
Сообщение
#2
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Тогда так наверное и сделаем в Арче будет mplayer-mc , а в Альте mplayer-vc-bullshit
Давай пока с зависимостями для арча определимся что в нем писать : mplayer что еще ? |
|
|
![]()
Сообщение
#3
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Давай пока с зависимостями для арча определимся что в нем писать : mplayer что еще ? Зависимости mplayer-vc в archlinux Код root<>archiso:~/# pacman -F /usr/bin/echo usr/bin/echo принадлежит core/coreutils 8.31-2 root<>archiso:~/# root<>archiso:~/# pacman -F /usr/bin/grep usr/bin/grep принадлежит core/grep 3.3-2 root<>archiso:~/# root<>archiso:~/# pacman -F /usr/bin/awk usr/bin/awk принадлежит core/gawk 5.0.1-1 root<>archiso:~/# root<>archiso:~/# pacman -F /usr/bin/bc usr/bin/bc принадлежит extra/bc 1.07.1-3 root<>archiso:~/# root<>archiso:~/# pacman -F /usr/bin/sed usr/bin/sed принадлежит core/sed 4.7-2 root<>archiso:~/# root<>archiso:~/# pacman -F /usr/bin/fbset usr/bin/fbset принадлежит community/fbset 2.1-6 root<>archiso:~/# root<>archiso:~/# pacman -F /usr/bin/tty usr/bin/tty принадлежит core/coreutils 8.31-2 root<>archiso:~/# root<>archiso:~/# pacman -F /usr/bin/setterm usr/bin/setterm принадлежит core/util-linux 2.34-3 root<>archiso:~/# root<>archiso:~/# pacman -F /usr/bin/cut usr/bin/cut принадлежит core/coreutils 8.31-2 root<>archiso:~/# root<>archiso:~/# pacman -F /usr/bin/head usr/bin/head принадлежит core/coreutils 8.31-2 root<>archiso:~/# root<>archiso:~/# pacman -F /usr/bin/mediainfo usr/bin/mediainfo принадлежит community/mediainfo 19.09-1 root<>archiso:~/# root<>archiso:~/# pacman -F /usr/bin/mplayer usr/bin/mplayer принадлежит extra/mplayer 38139-2 root<>archiso:~/# root<>archiso:~/# pacman -F /etc/group etc/group принадлежит core/filesystem 2019.10-1 а в Альте mplayer-vc-bullshit Погодю пока. Посмотрим куда меня в альтах пошлют с багрепортом на pam0_console. Там надо будет для мейнтейнера подробно и понятно изложить суть, а подготовить такой багрепорт, не так быстро как хотелось бы. Ну а если уже пошлют в багрепорте, тогда надо готовить mplayer-vc-bullshit для альтов с костылём в виде Код sed -i 's/0600 <fb> 0600 root/0660 <fb> 0660 root\.video/' /etc/security/console.perms.d/50-default.perms У меня тут идея проснулась на предмет mplayer-vc-bullshit для альтов. На попытке запустить mplayer-vc-bullshit без параметров: Слышится издевательский смех и появляется издевательская рожа в ascii графике. Затем это исчезает, вверху появляется надпись Welcome to mplayer-vc-bullshit for altlinux. А ниже пояснение, что чтобы эта херня работала нормально, просьба ввести команду от root: Код sed -i 's/0600 <fb> 0600 root/0660 <fb> 0660 root\.video/' /etc/security/console.perms.d/50-default.perms По истечении 5 секунд, ниже появляется на английском надпись "Прочитал?". И вслед за ней снова идиотский смех как у чёртика из табакерки. Сообщение отредактировал speccyfighter - 13.11.2019, 3:51 |
|
|
![]()
Сообщение
#4
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
У меня тут идея проснулась на предмет mplayer-vc-bullshit для альтов. На попытке запустить mplayer-vc-bullshit без параметров: Слышится издевательский смех и появляется издевательская рожа в ascii графике. Затем это исчезает, вверху появляется надпись Welcome to mplayer-vc-bullshit for altlinux. А ниже пояснение, что чтобы эта херня работала нормально, просьба ввести команду от root: Код sed -i 's/0600 <fb> 0600 root/0660 <fb> 0660 root\.video/' /etc/security/console.perms.d/50-default.perms По истечении 5 секунд, ниже появляется на английском надпись "Прочитал?". И вслед за ней снова идиотский смех как у чёртика из табакерки. Супер ![]() Сообщение отредактировал kostyalamer - 13.11.2019, 8:23 |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 14.6.2025, 20:30 |