![]() |
Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Поделиться |
![]()
Сообщение
#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 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Юра, может из первого скрипта собрать пакет, чтобы он лежал в /usr/bin ? Я могу конечно сунуть его в скелетон и заодно костыльнуть в root-овский хомяк , но пакетом лучше. Фиг с ними с пробелами , как у него с кириллицей в путях ?
Альяс с mplayer-ом могу закостылить прямо в сборку. |
|
|
![]()
Сообщение
#3
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Фиг с ними с пробелами , как у него с кириллицей в путях ? Кириллицу проглатывает на ура. В скрипте: - Убраны отладочные echo; - В строку запуска добавлено отключение затемнения экрана; - В строку запуска добавлено отключение кеша: По какой-то причине, если кеш не отключен, при воспроизведении видеопотока, через небольшое время воспроизведение прерывается. При текущем скрипте, имеется возможность воспроизведения видеопотока: Код $ mplayer-vc -playlist /path/videodtream.pls где videostream.pls плэйлист с полным http адресом на видеофайл. Остаётся только выуживать прямой линк на видеофайл. Количество опций сокращается до минимума: По наличию/отсутствию опции -playlist Юра, может из первого скрипта собрать пакет, чтобы он лежал в /usr/bin ? Я могу конечно сунуть его в скелетон и заодно костыльнуть в root-овский хомяк , но пакетом лучше. Альяс с mplayer-ом могу закостылить прямо в сборку. Ну и хорошо, тогда так и делаем.. Для первого скрипта требуется обязательная зависимость на пакет mediainfo: Для анализа свойств видеофайла: X+Y+aspect (пропорции). Обязательные зависимости для первого скрипта: Код $ rpm -qf $(which mediainfo) mediainfo-17.12-alt1.i586 Код $ rpm -qf $(which sed) sed-4.4.0.10.0580-alt1.i586 Код $ rpm -qf $(which awk) gawk-4.1.0-alt2.i586 Код $ rpm -qf $(which grep) grep-3.0.0.12.e2b7-alt1.i586 Код $ rpm -qf $(which echo) coreutils-8.27.0.23.f4570-alt1.i586 Код $ rpm -qf $(which rev) util-linux-2.30.2-alt1.i586 Код $ rpm -qf $(which setterm) util-linux-2.30.2-alt1.i586 Код $ rpm -qf $(which fbset) fbset-2.1-alt2.i586 Код $ rpm -qf $(which mplayer)
mplayer-1.3.0-alt1.i586 Сообщение отредактировал speccyfighter - 12.1.2018, 17:17 |
|
|
![]()
Сообщение
#4
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Юра, пакет я собрал, проверил и залил в p8 32-бита:
http://altlinuxclub.ru/repo/Repo_P8/SRPMS.....1-alt1.src.rpm Все дальнейшие перепакечивания и изменения этого пакета на тебе как на авторе , будешь заодно и его мантейнером ![]() Пакет я сделал простенький - дальше при необходимости добавишь все что надо. Сборочные зависимости добавлены через buildreq -bi , поэтому для p7 не собирается - не хватает 3-ей питонщины ( она по-моему там нафиг не нужна ). Если хочешь видеть в 7-ой репе ,то достаточно либо сделать под 7-кой buildreq , либо поправить сборочные зависимости вручную. В общем ты хозяин пакета - тебе решать. Видео показывает отлично, будет в следующей сборке консольного минимала ![]() PS Потихоньку душу удава, процесс идет ![]() |
|
|
![]()
Сообщение
#5
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Юра, пакет я собрал, проверил и залил в p8 32-бита: http://altlinuxclub.ru/repo/Repo_P8/SRPMS.....1-alt1.src.rpm Все дальнейшие перепакечивания и изменения этого пакета на тебе как на авторе , будешь заодно и его мантейнером ![]() Пакет я сделал простенький - дальше при необходимости добавишь все что надо. Сборочные зависимости добавлены через buildreq -bi , поэтому для p7 не собирается - не хватает 3-ей питонщины ( она по-моему там нафиг не нужна ). Если хочешь видеть в 7-ой репе ,то достаточно либо сделать под 7-кой buildreq , либо поправить сборочные зависимости вручную. В общем ты хозяин пакета - тебе решать. Видео показывает отлично, будет в следующей сборке консольного минимала ![]() OK PS Потихоньку душу удава, процесс идет ![]() Это хорошо ![]() |
|
|
![]()
Сообщение
#6
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Ничему и никому не доверяй. Доверяй только терминалу. Вот гадство. Даже при фреймбуфере 4x3 наткнулся на ролик с отказом отображеия видео: Редкий случай, но чинить надо Код mplayer -nocache -softvol -xy 1024 -fs -zoom 2>./4x3-aspect-incorrect.txt ./film.3gp vo: couldn't open the X11 display ()! [VO_SDL] SDL initialization failed: Unable to open mouse. vo: couldn't open the X11 display ()! vo: couldn't open the X11 display ()! vo: couldn't open the X11 display ()! [AO_ALSA] alsa-lib: pcm_hw.c:1695:(snd_pcm_hw_open) open '/dev/snd/pcmC0D0p' failed (-77): File descriptor in bad state [fbdev2] Screensize is smaller than video size (1024x768 < 1024x772) FATAL: Cannot initialize video driver. ... [fbdev2] Screensize is smaller than video size (1024x768 < 1024x772) FATAL: Cannot initialize video driver. Too many buffered pts ... MPlayer interrupted by signal 2 in module: decode video [fbdev2] Screensize is smaller than video size (1024x768 < 1024x772) FATAL: Cannot initialize video driver. [fbdev2] Screensize is smaller than video size (1024x768 < 1024x772) FATAL: Cannot initialize video driver. Too many buffered pts ... MPlayer interrupted by signal 2 in module: decode video aspect говорит что это 4:3 Код mediainfo ./film.3gp | grep Wid|Heigh|aspect Width : 318 pixels Height : 240 pixels Display aspect ratio : 4:3 А вот хрен там, если пересчитать Width и Height Ни разу это не 4:3 Код echo '318/240'|bc -l 1.32500000000000000000 При масшабировании по X фреймбуфера (-xy N), ролик не влезет в рамки Y фреймбуфера и mplayer откажется отображать видео, а думал что это коснётся только widescreen мониторов. А вот хрен: Код fbset --test mode "1024x768" geometry 1024 768 1024 768 32 timings 0 0 0 0 0 0 0 rgba 8/16,8/8,8/0,8/24 endmode Код echo 1024/768|bc -l 1.33333333333333333333 Пришлось менять алгоритм анализа пропорций фреймбуфера и видео по реальным X и Y фильма и фреймбуфера. И изменить комментарий к условию. Также добавлена опция -framedrop Изменённый скрипт: Код $ cat /home/user/mplayer-vc
#!/bin/bash VIDEOFILE=$(echo "$@") # Разрешение оригинального видеофайла по X VIDEOWIDTH=`mediainfo $VIDEOFILE | grep 'Width' | awk '{printf $3}'` # Разрешение оригинального видеофайла по Y VIDEOHEIGHT=`mediainfo $VIDEOFILE | grep 'Height' | awk '{printf $3}'` # Пропорции изоражения видео в десятичном виде VIDEOASPECT=`echo "$VIDEOWIDTH/$VIDEOHEIGHT" | bc -l` # Пропорции фреймбуфера в десятичном виде 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}'` # Если aspect (пропорции) фреймбуфера больше чем aspect видеофайла, # то вычислить коэффициент масштабирования до Y фреймбуфера, # затем вычислить по коэффициенту максимально допустимый размер # в пикселах при масштабирование видеофайла по X, чтобы при # масштабировании по -xy, видеофайл не выходил за пределы экрана # по координате Y if [[ $FBASPECT > $VIDEOASPECT ]] 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 -framedrop $VIDEOFILE &>/dev/null Сообщение отредактировал speccyfighter - 13.1.2018, 10:31 |
|
|
![]()
Сообщение
#7
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1194 Регистрация: 10.4.2015 Вставить ник Цитата Пользователь №: 2798 Страна: Казахстан Город: Уральск Пол: Муж. Репутация: ![]() ![]() ![]() |
Мне подождать опакечивание новой версии?
|
|
|
![]()
Сообщение
#8
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
|
|
|
![]()
Сообщение
#9
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Линукс, ты тупой как пень стоеросовый.
Я из-за тебя обработку ошибок только в 9-том часу вечера закончил, дубина ты. Обработка второго if условия на наличие файла: Код $ cat mplayer-vc-chk-enable-file #!/bin/bash echo $* if [ -z "$*" ] then echo -e "\nUsage: mplayer-vc /path/to/videofile\n" echo -e "The path to the file must not contain spaces\n" exit 0 fi echo $* if [ ! -f "$*" ] then echo -e "\nNo such file\n" exit 0 else echo -e "\nFile enabled\n" exit 0 fi #file $@ &>/dev/null #if [ "$?" != 0 ] # then # echo -e "\nNo such file\n" # exit 0 # else # echo -e "\nFile enabled\n" # exit 0 #fi exit 0 Код mplayer-vc-chk-enable-file ./Хроники\ Риддика.avi &>if2-chk.txt Ну ты и дубина... Ну как же enabled, если путь не обрабатывается, если пробелы не экранированы бэкслешем Код $ cat if2-chk.txt ./Хроники Риддика.avi ./Хроники Риддика.avi File enabled Из-за тебя болвана пришлось изобретать проверку костылём. Смотри как надо и учись: Код $ cat mplayer-vc-chk-enable-file #!/bin/bash echo $* if [ -z "$*" ] then echo -e "\nUsage: mplayer-vc /path/to/videofile\n" echo -e "The path to the file must not contain spaces\n" exit 0 fi echo $* #if [ ! -f "$*" ] # then # echo -e "\nNo such file\n" # exit 0 # else # echo -e "\nFile enabled\n" # exit 0 #fi file $@ &>/dev/null if [ "$?" != 0 ] then echo -e "\nNo such file\n" exit 0 else echo -e "\nFile enabled\n" exit 0 fi exit 0 Код mplayer-vc-chk-enable-file ./Хроники\ Риддика.avi &>if3-chk.txt Код $ cat if3-chk.txt ./Хроники Риддика.avi ./Хроники Риддика.avi ./Хроники: ERROR: cannot open `./Хроники' (No such file or directory) Риддика.avi: ERROR: cannot open `Риддика.avi' (No such file or directory) No such file Ну конечно же No such file: после парсинга в переменную, всего что стоит после команды, поисчезали бэкслэши, а без них полный путь не обрабатывается и должно быть Нет такого файла. И быть его не может. Файл в наличии, пробелов в пути нет: Код $ cat if3-1-chk.txt ./Голубой_Гром.240.mp4 ./Голубой_Гром.240.mp4 ./Голубой_Гром.240.mp4: ISO Media, MPEG v4 system, version 1 File enabled Зря я там выше ляпнул про костыллятор. Нанострдамил на свою голову. Блин, всё бы ничего, но на эти проверки время же тратится, от нажатия Enter до начала проигрывания... А этой фигни не должно быть. Ну никак не должно быть. Сообщение отредактировал speccyfighter - 13.1.2018, 22:05 |
|
|
![]()
Сообщение
#10
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Новая версия mplayer-vc-0.2
Изменения в версии 0.2: - Исправлен алгоритм проверки соотношения сторон фреймбуфера и видеофайла - Добавлена опция -framedrop - Добавлен вывод помощи при отсутствии пути к видеофайлу - Добавлена проверка на наличие файла Пакет установлен в систему sysv-xfce и проверен. Сообщение отредактировал speccyfighter - 13.1.2018, 23:58 |
|
|
![]()
Сообщение
#11
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Изменён скрипт mplayer-vc
Код $ sdiff -w 230 $HOME/mplayer-vc-new-2.sh $HOME/mplayer-vc/mplayer-vc-0.2/mplayer-vc #!/bin/bash #!/bin/bash echo $* echo $* if [ -z "$*" ] if [ -z "$*" ] then then echo -e "\nUsage: mplayer-vc /path/to/videofile\n" echo -e "\nUsage: mplayer-vc /path/to/videofile\n" echo -e "The path to the file must not contain spaces\n" echo -e "The path to the file must not contain spaces\n" exit 0 exit 0 fi fi file "$*" &>/dev/null | file $* &>/dev/null if [ "$?" != 0 ] if [ "$?" != 0 ] then then echo -e "\nNo such file\n" echo -e "\nNo such file\n" exit 0 exit 0 fi fi VIDEOFILE=$(echo "$*") VIDEOFILE=$(echo "$*") # Разрешение оригинального видеофайла по X # Разрешение оригинального видеофайла по X VIDEOWIDTH=`mediainfo "$VIDEOFILE" | grep 'Width' | awk '{printf $3}'` | VIDEOWIDTH=`mediainfo $VIDEOFILE | grep 'Width' | awk '{printf $3}'` # Разрешение оригинального видеофайла по Y # Разрешение оригинального видеофайла по Y VIDEOHEIGHT=`mediainfo "$VIDEOFILE" | grep 'Height' | awk '{printf $3}'` | VIDEOHEIGHT=`mediainfo $VIDEOFILE | grep 'Height' | awk '{printf $3}'` # Пропорции изоражения видео в десятичном виде # Пропорции изоражения видео в десятичном виде VIDEOASPECT=`echo "$VIDEOWIDTH/$VIDEOHEIGHT" | bc -l` VIDEOASPECT=`echo "$VIDEOWIDTH/$VIDEOHEIGHT" | bc -l` # Пропорции фреймбуфера в десятичном виде # Пропорции фреймбуфера в десятичном виде FBASPECT=`fbset --test | grep mode | awk -F '"' '{print $2}' | sed 's/x/\//' | bc -l |sed 's/^\(......\).*/\1/ FBASPECT=`fbset --test | grep mode | awk -F '"' '{print $2}' | sed 's/x/\//' | bc -l |sed 's/^\(......\).*/\1/ # Разрешение фреймбуфера по Y в пикселах # Разрешение фреймбуфера по Y в пикселах FBHEIGHT=`fbset --test | grep mode | awk -F '"' '{print $2}' | awk -F 'x' '{printf $2}'` FBHEIGHT=`fbset --test | grep mode | awk -F '"' '{print $2}' | awk -F 'x' '{printf $2}'` # Если aspect (пропорции) фреймбуфера больше чем aspect видеофайла, # Если aspect (пропорции) фреймбуфера больше чем aspect видеофайла, # то вычислить коэффициент масштабирования до Y фреймбуфера, # то вычислить коэффициент масштабирования до Y фреймбуфера, # затем вычислить по коэффициенту максимально допустимый размер # затем вычислить по коэффициенту максимально допустимый размер # в пикселах при масштабирование видеофайла по X, чтобы при # в пикселах при масштабирование видеофайла по X, чтобы при # масштабировании по -xy, видеофайл не выходил за пределы экрана # масштабировании по -xy, видеофайл не выходил за пределы экрана # по координате Y # по координате Y if [[ $FBASPECT > $VIDEOASPECT ]] if [[ $FBASPECT > $VIDEOASPECT ]] then then VSIZEXXX=`echo "$FBHEIGHT/$VIDEOHEIGHT" | bc -l` VSIZEXXX=`echo "$FBHEIGHT/$VIDEOHEIGHT" | bc -l` XVSIZE=`echo "$VIDEOWIDTH*$VSIZEXXX" | bc -l` XVSIZE=`echo "$VIDEOWIDTH*$VSIZEXXX" | bc -l` # иначе вычислить X фреймбуфера # иначе вычислить X фреймбуфера else else XVSIZE=`fbset --test|grep geometry|awk '{print $2}'` XVSIZE=`fbset --test|grep geometry|awk '{print $2}'` fi fi # пропорционально масштабировать по коэффициенту # пропорционально масштабировать по коэффициенту # до X фреймбуфера, - в переменной XVSIZE # до X фреймбуфера, - в переменной XVSIZE setterm --blank 0; mplayer -nocache -softvol -xy $XVSIZE -fs -zoom -framedrop "$VIDEOFILE" &>/dev/null | setterm --blank 0; mplayer -nocache -softvol -xy $XVSIZE -fs -zoom -framedrop $VIDEOFILE &>/dev/null Код $ diff $HOME/mplayer-vc-new-2.sh $HOME/mplayer-vc/mplayer-vc-0.2/mplayer-vc 13c13 < file "$*" &>/dev/null --- > file $* &>/dev/null 24c24 < VIDEOWIDTH=`mediainfo "$VIDEOFILE" | grep 'Width' | awk '{printf $3}'` --- > VIDEOWIDTH=`mediainfo $VIDEOFILE | grep 'Width' | awk '{printf $3}'` 26c26 < VIDEOHEIGHT=`mediainfo "$VIDEOFILE" | grep 'Height' | awk '{printf $3}'` --- > VIDEOHEIGHT=`mediainfo $VIDEOFILE | grep 'Height' | awk '{printf $3}'` 54c54 < setterm --blank 0; mplayer -nocache -softvol -xy $XVSIZE -fs -zoom -framedrop "$VIDEOFILE" &>/dev/null --- > setterm --blank 0; mplayer -nocache -softvol -xy $XVSIZE -fs -zoom -framedrop $VIDEOFILE &>/dev/null Теперь mplayer-vc умеет в пути к файлу обрабатывать бэкслэши, экранирующие символы (пробел, восклицательный знак и т.д.) Из окончательного варианта скрипта убрана строка предупреждающая о том, что полный путь к видеофайлу не должен содержать пробелов: Код $ cat $HOME/mplayer-vc-new-2.sh #!/bin/bash echo $* if [ -z "$*" ] then echo -e "\nUsage: mplayer-vc /path/to/videofile\n" exit 0 fi file "$*" &>/dev/null if [ "$?" != 0 ] then echo -e "\nNo such file\n" exit 0 fi VIDEOFILE=$(echo "$*") # Разрешение оригинального видеофайла по X VIDEOWIDTH=`mediainfo "$VIDEOFILE" | grep 'Width' | awk '{printf $3}'` # Разрешение оригинального видеофайла по Y VIDEOHEIGHT=`mediainfo "$VIDEOFILE" | grep 'Height' | awk '{printf $3}'` # Пропорции изоражения видео в десятичном виде VIDEOASPECT=`echo "$VIDEOWIDTH/$VIDEOHEIGHT" | bc -l` # Пропорции фреймбуфера в десятичном виде 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}'` # Если aspect (пропорции) фреймбуфера больше чем aspect видеофайла, # то вычислить коэффициент масштабирования до Y фреймбуфера, # затем вычислить по коэффициенту максимально допустимый размер # в пикселах при масштабирование видеофайла по X, чтобы при # масштабировании по -xy, видеофайл не выходил за пределы экрана # по координате Y if [[ $FBASPECT > $VIDEOASPECT ]] 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 -framedrop "$VIDEOFILE" &>/dev/null Скрипт воспроизводит только локальные файлы. Алгоритм остался прежним. Скрипт по-прежнему работает и в tty и в X-сах. Скрит проверен на работоспособность с бэклэшами перед пробелами и восклицательным знаком. Однако при запуске в X-сах предупреждает: setterm: terminal xterm does not support --blank Это версия: mplayer-vc-0.2.1 - added processing of backslashes in the path to the file - добавлена обработка бэкслэшей в пути к файлу Оригинальное имя исполняемого файла также остаётся прежним: mplayer-vc vc - своего рода аббревиатура, - видеоконсоль В скрит надо было бы добавить лицензию, но честно говоря, мне лень ![]() Теоретически можно было бы добавить расширенный хэлп по этой идее: https://forum.altlinux.org/index.php?topic=...24233#msg324233 но честно говоря, я не знаю зачем это нужно. Поскольку идея скрипта, это максимальное упрощение для пользователя и автоматизация shell по-максимуму. Всё что может выносить мозг пользователю, а это опции и параметры, должно быть убрано в автомат. Идея в том, чтобы донести до пользователя идею и философию ZX Spectrum через bash-скрипт: - shell может быть простым для повседневного использования (в рамках пользовательских задач). Хочется надеяться, что в последней версии скрипта (0.2.1), в должной мере реализован принцип KISS: Keep It Simple Stupid Делай проще тупица Сообщение отредактировал speccyfighter - 11.6.2018, 14:41 |
|
|
![]()
Сообщение
#12
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Скрипт проигрывает только локальные файлы.
Но скажем если закомментировать (или как-то переделать) процедуру проверки наличия файла, то скрипт хоть и сыпет ошибками, но умудряется проигрывать и видеопоток, с прямым линком в файле, в котором лежит прямая http-ссылка на видеофайл: Пример воспроизведения видеопотока через mplayer-vc-0.2.1 с закомментированной процедурой проверки наличия видеофайла: Код $HOME/mplayer-vc-new-2.sh $(<$HOME/video-url.txt) Сам прямой линк содержащийся в файле video-url.txt, по понятнім причинам не приводится. В теории процедуру проверки наличия файла можно было бы просто закомментировать, но тогда при отсутствии файла, будет вываливаться ошибка малопонятная пользователю. И это может его шокировать. |
|
|
![]()
Сообщение
#13
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Окончательный вариант скрипта mplayer-vc v0.2.1
Изменения: - добавлена лицензия - изменено содержание и метод вывода help - добавлен комментарий к процедуре проверки наличия файла - добавлена обработка бэкслэшей в полном пути к видеофайлу (допускает экранирование бэкслэшэм символов в пути к видеофайлу, таких как пробел, скобки и т.д.) Субъективно: Теперь скрипт достоин чтобы войти в любой репозиторий. После сборки пакета новой версии, консольный образ live-sysv рекомендуется обновить. Сообщение отредактировал speccyfighter - 12.6.2018, 14:27 |
|
|
![]()
Сообщение
#14
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
После сборки пакета новой версии, консольный образ live-sysv рекомендуется обновить. Обновлю, только давай подумаем что еще добавить / изменить в live-sysv , только в этой теме : http://forum.russ2.com/index.php?showtopic...amp;#entry50178 |
|
|
![]()
Сообщение
#15
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
mplayer-vc (Movie Player for Virtual Console) для IceArch
Единственное отличие этой версии скрипта от версии для ALT Linux: Судя по всему, mplayer для archlinux не умеет обнаруживать единственно доступное устройство вывода видео. Поэтому в последней строке скрипта, использование опции '-vo fbdev2' обязательно. Без этой опции/параметра скрипт в арче не отработает и завершится без вывода ошибок. С этой же опцией скрипт может использоваться и для ALT Linux, но впрочем это необязательно. Скрипт обкатывался на кард-ридере в IceArch-0.984-x86_64.iso Код [arch<>archiso ~]$ ls /media/ IceArch_0.984 на клипах Код [arch<>archiso ~]$ find ./clips/ -name "Trace*" -o -name "Alan*" ./clips/Country-video/Trace Adkins - Just Fishin'-IheODRwalEw.3gp ./clips/Country-video/Trace Adkins - Just Fishin'-IheODRwalEw.mp4 ./clips/Country-video/Trace Adkins - You're Gonna Miss This-lBDN8yWyNYU.3gp ./clips/Country-video/Trace Adkins - You're Gonna Miss This-lBDN8yWyNYU.mp4 ./clips/Country-video/Alan Jackson, Jimmy Buffett - It's Five O' Clock Somewhere-BPCjC543llU.3gp В ледяном арче потребовалась установка дополнительных пакетов fbset и mediainfo, а также добавление непревилегированного пользователя в группу video. Наличие исполняемых файлов file grep echo awk sed setterm для работы скрипта также обязательно. Комментарии в скрипте всё ещё не переведены, - это краткое описание алгоритма работы скрипта. Листинг скрипта для арча: Код [arch<>archiso ~]$ cat /usr/bin/mplayer-vc Код #!/bin/bash # mplayer-vc # # Script for full-screen viewing of local video in mplayer via console. # This script automatically adjusts the video output to full screen # for a monitor with any resolution and does not require the user # to enter additional options. # Copyright 2018 Yury Pakin (ака Speccyfighter) <zxwarior<>yandex.ru> # LICENSE: # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # parse options opt=1 helptext="\ Script for full-screen viewing of local video in mplayer through console. This script automatically adjusts the video output to full screen for a monitor with any resolution and does not require additional options. Usage: mplayer-vc /path/to/videofile -h --help print this help text " [ $# -ne 0 ] || set -- -h while test "$opt" = "1"; do case "$1" in # fbgs options -h | --help) printf "$helptext" exit 1 ;; # others options -*) echo -e "\nunknown option: $1\n" exit 1 ;; *) opt=0 ;; esac done # Проверка наличия локального файла file "$*" &>/dev/null if [ "$?" != 0 ] then echo -e "\nNo such file\n" exit 0 fi VIDEOFILE=$(echo "$*") # Разрешение оригинального видеофайла по X VIDEOWIDTH=`mediainfo "$VIDEOFILE" | grep 'Width' | awk '{printf $3}'` # Разрешение оригинального видеофайла по Y VIDEOHEIGHT=`mediainfo "$VIDEOFILE" | grep 'Height' | awk '{printf $3}'` # Пропорции изображения видео в десятичном виде VIDEOASPECT=`echo "$VIDEOWIDTH/$VIDEOHEIGHT" | bc -l` # Пропорции фреймбуфера в десятичном виде 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}'` # Если aspect (пропорции) фреймбуфера больше чем aspect видеофайла, # то вычислить коэффициент масштабирования до Y фреймбуфера, # затем вычислить по коэффициенту максимально допустимый размер # в пикселах при масштабирование видеофайла по X, чтобы при # масштабировании по -xy, видеофайл не выходил за пределы экрана # по координате Y if [[ $FBASPECT > $VIDEOASPECT ]] 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 -vo fbdev2 -xy $XVSIZE -fs -zoom -framedrop "$VIDEOFILE" &>/dev/null (Пустая строка в конце файла обязательна!) |
|
|
![]()
Сообщение
#16
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 157 Регистрация: 6.3.2019 Вставить ник Цитата Пользователь №: 3002 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
|
|
|
![]()
Сообщение
#17
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 157 Регистрация: 6.3.2019 Вставить ник Цитата Пользователь №: 3002 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
# потом уже увидел дату первого сообщения ( не знаю, может в последней версии и так налажено ...)
|
|
|
![]()
Сообщение
#18
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Спасибо Юра, проверил - отлично работает ! Прикрутил к mc , добавил пакеты и отправил в новую версию ледяного ( в /usr/local/bin )
|
|
|
![]()
Сообщение
#19
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Спасибо Юра, проверил - отлично работает ! Прикрутил к mc , добавил пакеты и отправил в новую версию ледяного ( в /usr/local/bin ) Прошлой ночью, ну сова же ![]() Зачем это нужно: Из-за необходимости -vo fbdev2 для арча, скрипт для альтов и для арча начал разъезжаться и это мне нифига не нравится. Поскольку это ломает философию платформы ZX Spectrum, - это должно работать на любой архитектуре. Как оно мысленно выстраивается: Введение в скрипт и для арча и для альта -vo fbdev2. Но при явном указании fbdev2, при запуске в /dev/pts/* (в X-терминале) вылезет неприятный баг. Отсюда возникает необходимость запрета запуска скрипта mplayer-vc в /dev/pts/*, но разрешения запуска в /dev/tty* (виртуальном терминале). И это даст единообразие кода скрипта для арча и альтов. К тому же не будет проявляться ошибка на setterm --blank 0, проявляющаяся в любом X-терминале. Обработка на разрешение запуска в tty и запрета запуска в pts может быть где-то такой: Алгоритм обработки: Парсить выброс команды tty без опций. Если запуск mplayer-vc в pts, то предупредить пользователя и остановить выполнение скрипта. Иначе, если запуск в tty, продолжить выполнение. /dev/pts/* - это X-терминал /dev/tty* - это виртуальная консоль Код $ cat search-tty-2.sh DEVOUT=`tty | cut -f3 -d / | head -c 3` if [ $DEVOUT != "tty" ] then echo -e "\nIt is not /dev/tty*\nRun mplayer-vc in virtual console\n" exit 0 fi Проще говоря: Скрипт mplayer-vc с этим кодом, будет работать в виртуальной консоли, но не будет работать в X-терминале. Принимаются предложения с "За" и "Нафик". С аргументацией. ![]() |
|
|
![]()
Сообщение
#20
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1669 Регистрация: 12.10.2010 Вставить ник Цитата Пользователь №: 1950 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
|
|
|
![]()
Сообщение
#21
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
а может просто если иксы найдены, то не добавлять в строку запуска -vo fbdev2 ? Интересная мысль. Скрипт с этим блоком надо протестировать в арче (перенаправив весь вывод mplayer в файл) Код # sed -n '105,118p' /usr/bin/mplayer-vc-copy # Выбор опция/параметр устройства вывода видео # для виртуальной консоли или X-теминала VIDEOOUTPUT="" DEVOUT=`tty | cut -f3 -d / | head -c 3` if [ $DEVOUT = "tty" ] then setterm --blank 0 VIDEOOUTPUT=" -vo fbdev2 " # else # VIDEOOUTPUT=" -vo что-то " fi на предмет используемого по-умолчанию -vo *. В альте, это по-умолчанию xv Код $ grep ^VO ~/mplayer-output.txt VO: [xv] 480x360 => 1024x768 Planar YV12 [fs] [zoom] |
|
|
![]()
Сообщение
#22
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Скрипт с этим блоком надо протестировать в арче (перенаправив весь вывод mplayer в файл) Код # sed -n '105,118p' /usr/bin/mplayer-vc-copy # Выбор опция/параметр устройства вывода видео # для виртуальной консоли или X-теминала VIDEOOUTPUT="" DEVOUT=`tty | cut -f3 -d / | head -c 3` if [ $DEVOUT = "tty" ] then setterm --blank 0 VIDEOOUTPUT=" -vo fbdev2 " # else # VIDEOOUTPUT=" -vo что-то " fi на предмет используемого по-умолчанию -vo *. В альте, это по-умолчанию xv Код $ grep ^VO ~/mplayer-output.txt VO: [xv] 480x360 => 1024x768 Planar YV12 [fs] [zoom] С этим блоком выбора VIDEOOUTPUT и со строкой Код $ tail -n 1 /usr/bin/mplayer-vc-copy mplayer -nocache -softvol $VIDEOOUTPUT -xy $XVSIZE -fs -zoom -framedrop "$VIDEOFILE" &>$HOME/mplayer-output.txt протестировал в альте Код $ mplayer-vc-copy ~/Загрузки/clips/Country-video/Trace\ Adkins\ -\ Just\ Fishin\'-IheODRwalEw.mp4 в X-терминале (/dev/pts/*) Код $ grep ^VO ~/mplayer-output.txt VO: [xv] 640x360 => 1365x768 Planar YV12 [fs] [zoom] и в виртуальной консоли (/dev/tty*) Код $ grep ^VO ~/mplayer-output.txt VO: [fbdev2] 1365x768 => 1365x768 BGRA [fs] [zoom] Теперь это же надо посмотреть в арче. На предмет необходимости else с явным указанием -vo в блоке. Или достаточно будет и без оного. |
|
|
![]()
Сообщение
#23
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Проще говоря: Скрипт mplayer-vc с этим кодом, будет работать в виртуальной консоли, но не будет работать в X-терминале. Принимаются предложения с "За" и "Нафик". С аргументацией. ![]() Код include/video Open=if [ -n "$DISPLAY" ];then mpv %f; else mplayer-vc %f; fi Юра , это кусок из моих настроек mc, твой скрипт будет запускаться только в чистой консоли. Причем думаю разницы никакой что в арче, что в альте ( стащил идею по-моему у дебианистов ). Может просто вставить эту проверку в твой скрипт ? Сейчас проверю твой способ . |
|
|
![]()
Сообщение
#24
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Юра, вот vo из mplayer-а играющего из под qterminal :
VO: [xv] 320x240 => 320x240 Planar YV12 не удивляйся разрешению , снимал давно фотиком. Сообщение отредактировал kostyalamer - 6.11.2019, 22:44 |
|
|
![]()
Сообщение
#25
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Юра, вот vo из mplayer-а играющего из под qterminal : VO: [xv] 320x240 => 320x240 Planar YV12 не удивляйся разрешению , снимал давно фотиком. Кость, фиг с ним, с разрешением. Я ещё и не такое тестирую. ![]() Погонял скрипт с новым блоком в ледяном. Получил засаду: - При попытке выхода из Х-сессии, автоматом с автологином снова заход в root Х-сессию и не могу залогиниться в Х-сы непревилегированного пользователя arch. - При попытке зайти из root Х-терминала в сессию пользователя arch через '# su - arch', само-собой не экспортируется переменная DISPLAY в окружение пользователя. И это приведёт к отказу работы скрипта в лайве ледяного из под непревилегированного пользователя arch. Поэтому, если запуск mplayer-vc из под непревилегированного пользователя arch, то: - пользователь должен быть в группе video. - переменная DISPLAY должна быть экспортирована в окружение пользователя: '$ export DISPLAY=:0' (echo $DISPLAY). Т.е. тот дисплей в котором запускается скрипт. Иначе скрипт в арче под непревилегированным откажется работать по причине пустой переменной DISPLAY: Код [arch<>archiso ~]$ grep -i '^vo\|^err' ./mplayer-output.txt | head -n 2 vo: couldn't open the X11 display ()! Error opening/initializing the selected video_out (-vo) device. Но принудительно в скрипте указывать опцию -display с параметром нельзя. Поскольку в мультисессии, неизвестно, в каком дисплее будет запускаться скрипт в Х-сессии. (у меня на домашней станции, как правило DISPLAY не один, - мультисессии) '-vo xv' с else выброшено и нафик не надо, поскольку автоматом по-дефолту и в альте и в арче, при запуске скрипта в Х-сах, подхватывается xv. Здесь главное чтобы переменная DISPLAY была не пустая. И скрипт отработает. Листинг универсального скрипта и под арч и под альты, для запуска в виртуальной консоли и в Х-терминале. Код # cat /usr/bin/mplayer-vc Код #!/bin/bash # mplayer-vc # # Script for full-screen viewing of local video in mplayer via console. # This script automatically adjusts the video output to full screen # for a monitor with any resolution and does not require the user # to enter additional options. # Copyright 2018 Yury Pakin <zxwarior<>yandex.ru> # LICENSE: # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # parse options opt=1 helptext="\ Script for full-screen viewing of local video in mplayer through console. This script automatically adjusts the video output to full screen for a monitor with any resolution and does not require additional options. Usage: mplayer-vc /path/to/videofile -h --help print this help text " [ $# -ne 0 ] || set -- -h while test "$opt" = "1"; do case "$1" in # fbgs options -h | --help) printf "$helptext" exit 1 ;; # others options -*) echo -e "\nunknown option: $1\n" exit 1 ;; *) opt=0 ;; esac done # Проверка наличия локального файла file "$*" &>/dev/null if [ "$?" != 0 ] then echo -e "\nNo such file\n" exit 0 fi VIDEOFILE=$(echo "$*") # Разрешение оригинального видеофайла по X VIDEOWIDTH=`mediainfo "$VIDEOFILE" | grep 'Width' | awk '{printf $3}'` # Разрешение оригинального видеофайла по Y VIDEOHEIGHT=`mediainfo "$VIDEOFILE" | grep 'Height' | awk '{printf $3}'` # Пропорции изображения видео в десятичном виде VIDEOASPECT=`echo "$VIDEOWIDTH/$VIDEOHEIGHT" | bc -l` # Пропорции фреймбуфера в десятичном виде 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}'` # Если aspect (пропорции) фреймбуфера больше чем aspect видеофайла, # то вычислить коэффициент масштабирования до Y фреймбуфера, # затем вычислить по коэффициенту максимально допустимый размер # в пикселах при масштабирование видеофайла по X, чтобы при # масштабировании по -xy, видеофайл не выходил за пределы экрана # по координате Y if [[ $FBASPECT > $VIDEOASPECT ]] then VSIZEXXX=`echo "$FBHEIGHT/$VIDEOHEIGHT" | bc -l` XVSIZE=`echo "$VIDEOWIDTH*$VSIZEXXX" | bc -l` # иначе вычислить X фреймбуфера else XVSIZE=`fbset --test|grep geometry|awk '{print $2}'` fi # Опция/параметр выбора драйвера вывода видео # для виртуальной консоли VIDEOOUTPUT="" DEVOUT=`tty | cut -f3 -d / | head -c 3` if [ $DEVOUT = "tty" ] then setterm --blank 0 VIDEOOUTPUT="-vo fbdev2" fi # пропорционально масштабировать по коэффициенту # до X фреймбуфера, - в переменной XVSIZE mplayer -nocache -softvol $VIDEOOUTPUT -xy $XVSIZE -fs -zoom -framedrop "$VIDEOFILE" &>/dev/null В арче скрипт отработает нормально: Код [arch<>archiso ~]$ mplayer-vc ./Trace\ Adkins\ -\ Just\ Fishin\'-IheODRwalEw.mp4 Код [arch<>archiso ~]$ grep -i '^vo\|^err' ./mplayer-output.txt | head -n 2 VO: [xv] 640x360 => 1365x768 Planar YV12 [fs] [zoom] Код [arch<>archiso ~]$ # tty
[arch<>archiso ~]$ grep -i '^vo\|^err' ./mplayer-output.txt | head -n 2 VO: [fbdev2] 1365x768 => 1365x768 BGRA [fs] [zoom] Сообщение отредактировал speccyfighter - 7.11.2019, 0:03 |
|
|
![]()
Сообщение
#26
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Система на alt-p8-sysv-tde-i586:
Тест в tty и pts пройден. Скрипт пригоден для сборки rpm пакета. Последний вариант скрипта стал универсальным для арч и альтов. Сообщение отредактировал speccyfighter - 7.11.2019, 6:52 |
|
|
![]()
Сообщение
#27
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Система на alt-p8-sysv-tde-i586: Тест в tty и pts пройден. Скрипт пригоден для сборки rpm пакета. Последний вариант скрипта стал универсальным для арч и альтов. Отлично , если соберешь rpm-ку можно отправить в 8-ую и 9-ую клубную репы ( а если с Антоном договоришься, можно и в официальные ). Потом по аналогии могу сделать пакет для Арча и пушнуть его в Aur . |
|
|
![]()
Сообщение
#28
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Система на alt-p8-sysv-tde-i586: Тест в tty и pts пройден. Скрипт пригоден для сборки rpm пакета. Последний вариант скрипта стал универсальным для арч и альтов. Отлично , если соберешь rpm-ку можно отправить в 8-ую и 9-ую клубную репы ( а если с Антоном договоришься, можно и в официальные ). Потом по аналогии могу сделать пакет для Арча и пушнуть его в Aur . Угу... ![]() Кость, ты ж меня знаешь, если начну докапываться, чтобы довести до релиза, то выгребу всех тараканов. Как выяснилось, скрипт ещё не готов до статуса публичного релиза, который просто должен работать: Дайте мне топор, чтобы я этим поттерингопоклонникам-кодописателям руки нахер поотрубал. Четыре часа бьюсь и не могу понять, какого хера в SL8, скрипт воспроизводит видео в Х-сах, но не воспроизводит в tty, оставляя чёрный экран и шо блин за херня: Код $ grep . --text mplayer-output.txt MPlayer 1.1-5.3.1 (C) 2000-2012 MPlayer Team 192 audio & 401 video codecs Playing /run/media/altlinux/bfa8b5cb-2e1c-4404-ae62-31f90ee3fcf5/wilder/Загрузки/clips/Country-video/Trace Adkins - Just Fishin'-IheODRwalEw.mp4. libavformat version 54.6.100 (internal) libavformat file format detected. [lavf] stream 0: video (h264), -vid 0 [lavf] stream 1: audio (aac), -aid 0, -alang und VIDEO: [H264] 640x360 24bpp 24.000 fps 581.0 kbps (70.9 kbyte/s) Clip info: major_brand: mp42 minor_version: 0 compatible_brands: isommp42 creation_time: 2014-03-07 11:47:19 Load subtitles in /run/media/altlinux/bfa8b5cb-2e1c-4404-ae62-31f90ee3fcf5/wilder/Загрузки/clips/Country-video/ ========================================================================== Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family libavcodec version 54.23.100 (internal) Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264) ========================================================================== ========================================================================== Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders AUDIO: 44100 Hz, 2 ch, s16le, 96.0 kbit/6.80% (ratio: 11999->176400) Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio)) ========================================================================== AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample) Starting playback... Unsupported PixelFormat 61 Unsupported PixelFormat 81 Unsupported PixelFormat 61 [VD_FFMPEG] Trying pixfmt=0. Unsupported PixelFormat 61 Could not find matching colorspace - retrying with -vf scale... Opening video filter: [scale] The selected video_out device is incompatible with this codec. Try appending the scale filter to your filter list, e.g. -vf spp,scale instead of -vf spp. [VD_FFMPEG] Trying pixfmt=1. Could not find matching colorspace - retrying with -vf scale... Opening video filter: [scale] The selected video_out device is incompatible with this codec. Try appending the scale filter to your filter list, e.g. -vf spp,scale instead of -vf spp. Unsupported PixelFormat 81 [VD_FFMPEG] Trying pixfmt=2. Unsupported PixelFormat 81 Could not find matching colorspace - retrying with -vf scale... Opening video filter: [scale] The selected video_out device is incompatible with this codec. Try appending the scale filter to your filter list, e.g. -vf spp,scale instead of -vf spp. [VD_FFMPEG] Trying pixfmt=3. Could not find matching colorspace - retrying with -vf scale... Opening video filter: [scale] Movie-Aspect is 1.78:1 - prescaling to correct movie aspect. [swscaler @ 0xef9a40]BICUBIC scaler, from yuv420p to bgra using MMX2 VO: [fbdev2] 1365x768 => 1365x768 BGRA [fs] [zoom] A: 0.4 V: 0.2 A-V: 0.175 ct: 0.029 0/ 0 98% 14% 0.1% 6 0 Exiting... (Quit) Код $ head -n 21 vcs4-output2text.txt [altlinux<>localhost clips]$ tty /dev/tty4 [altlinux<>localhost clips]$ [altlinux<>localhost clips]$ fbset --test mode "1366x768" geometry 1366 768 1366 768 32 timings 0 0 0 0 0 0 0 rgba 8/16,8/8,8/0,0/0 endmode [altlinux<>localhost clips]$ [altlinux<>localhost clips]$ stty -a | grep column speed 38400 baud; rows 48; columns 170; line = 0; [altlinux<>localhost clips]$ [altlinux<>localhost clips]$ ll /dev/fb0 crw-rw----+ 1 altlinux video 29, 0 ноя 7 19:46 /dev/fb0 [altlinux<>localhost clips]$ [altlinux<>localhost clips]$ groups altlinux wheel uucp proc cdwriter audio radio users fuse video netadmin xgrp scanner [altlinux<>localhost clips]$ Последний выброс, это выброс из tty. Делается он так: Код # fold -w 170 /dev/vcs4 > file.txt Где: -w 170 - параметр columns из выброса 'stty -a' /dev/vcs4 - номер tty из выброса tty без опций, текущего копируемого в файл tty По исходу четвёртого часа до меня начинает ме-е-дленно доходить: Гадские поттеринговоды... Зап*ло начинается с ядерного драйвера, который по-дефолту сажает звуковую карту не в сокет 0, а в сокет 1 Код $ cat /proc/asound/cards 0 [HDMI ]: HDA-Intel - HDA Intel HDMI HDA Intel HDMI at 0xc1210000 irq 51 1 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xc1214000 irq 50 Код $ cat /proc/asound/{cards,modules} 0 [HDMI ]: HDA-Intel - HDA Intel HDMI HDA Intel HDMI at 0xc1210000 irq 51 1 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xc1214000 irq 50 0 snd_hda_intel 1 snd_hda_intel а гадский пульсаудио демон не может разрулить аудиопотоки если поток гонится в tty Код $ ls -1 /usr/bin/*pulse* /usr/bin/pulseaudio /usr/bin/start-pulseaudio-x11 Зап*ляна в том, что обычному пользователю, для которого и предназначен скрипт mplayer-vc, на эти сокеты и потоки глубоко насрать. А если аудио драйвер посадит карту не в сокет 0, то пульс в tty не разрулит потоки и это приведёт к отказу воспроизведения видео, без вываливания в оболочку, с прерыванием по Esc. А всю эту фигню с нормальным воспроизведением видео на mplayer-vc в SL8 с пульсой через tty, поймал на этой команде, подобной скриптовой, но с добавлением явно указанного устройства вывода аудио: Код $ grep . --text vcs4-output2text-2.txt [altlinux<>localhost Country-video]$ mplayer -nocache -softvol -vo fbdev2 -xy 1365 -fs -zoom -framedrop -ao pulse::1 ./Trace\ Adkins\ -\ Just\ Fishin\'-IheODRwalEw.mp4 Потому шо по-дефолту у меня, звук гонится через HDMI, который в сокет 0. А мне и в голову не могло придти, что отказ отображения видео мог быть из-за самой популярной линуксовой звуковой подсистемы. И шо с этой хернёй делать, ума не приложу. Умных мыслей пока нет. Вот такая блин фигня... Блин, при таком откровенно пофигистском отношении к коду системных компонентов в Линукс, в следующий раз, когда спросят, какой Линукс поставить, скажу Винду. Шесть часов улетели к чёртовой матери. Сообщение отредактировал speccyfighter - 7.11.2019, 20:53 |
|
|
![]()
Сообщение
#29
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Оттестировал последнюю версию скрипта на этом лайве который с alsa, - это который p9-xfce-sysv с alsa:
Код $ grep -i '^name\|^vers\|^pretty' /etc/os-release NAME="starter kit" VERSION="p9 (Hypericum)" VERSION_ID=p9 PRETTY_NAME="ALT Starterkit (Hypericum)" Если карты ядерный драйвер посадил в сокеты неверно, Код $ cat /proc/asound/cards 0 [HDMI ]: HDA-Intel - HDA Intel HDMI HDA Intel HDMI at 0xc1210000 irq 51 1 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xc1214000 irq 48 то в Х-сах и tty вывод видео будет отображаться (пользователь в группе video), но просто не будет звука. Который накрайняк можно разрулить не через /etc/modprobe.d/alsa-modindex.conf, а через asoundconf-gtk. В alt-p9-xfce-sysv и всех делов-то. Гемора, ну почти ноль же, блин. Но хрен его знает, кто его наваял этот драйвер, Код # modinfo snd_hda_{codec_conexant,codec_hdmi,codec_generic,intel,core} | grep '^file\|^desc\|^lic' filename: /lib/modules/4.19.79-std-def-alt1/kernel/sound/pci/hda/snd-hda-codec-conexant.ko.gz description: Conexant HD-audio codec license: GPL filename: /lib/modules/4.19.79-std-def-alt1/kernel/sound/pci/hda/snd-hda-codec-hdmi.ko.gz description: HDMI HD-audio codec license: GPL filename: /lib/modules/4.19.79-std-def-alt1/kernel/sound/pci/hda/snd-hda-codec-generic.ko.gz description: Generic HD-audio codec parser license: GPL filename: /lib/modules/4.19.79-std-def-alt1/kernel/sound/pci/hda/snd-hda-intel.ko.gz description: Intel HDA driver license: GPL filename: /lib/modules/4.19.79-std-def-alt1/kernel/sound/hda/snd-hda-core.ko.gz license: GPL description: HD-audio bus который сажает карты не в те сокеты в которые должен: Код $ cat /proc/asound/cards
0 [HDMI ]: HDA-Intel - HDA Intel HDMI HDA Intel HDMI at 0xc1210000 irq 51 1 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xc1214000 irq 48 Сообщение отредактировал speccyfighter - 7.11.2019, 21:23 |
|
|
![]()
Сообщение
#30
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Юра, хз чего там в Альте, но в Арче твой скрипт прекрасно работает
![]() |
|
|
![]()
Сообщение
#31
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Юра, хз чего там в Альте, но в Арче твой скрипт прекрасно работает ![]() Ага. Только что ещё раз посмотрел: У тебя на ледяном, даже при пульсе, в tty гонит и звук и видео. В Х-сах запуск после '# su - arch' видео гонит, но без звука и отказа видео нет. Не знаю, какой он там Простой, но в этом Симпли, Ж-ж-ж... Короче полный писец. И шо с этим делать, хрен его знает. Блин, ну не парсить же всю звуковую с любыми возможными и невозможными вариантами. Это тот ещё подарок. К тому же это костыль. При отказе аудио, отказа по видео не должно быть и всё тут. А пульсовый демон обязан запускаться вне зависимости от того, какой вход у пользователя, Х-совый или без оных. Чтобы звук разруливать вне зависимости от того, вход с Х-сами или без. Это же Линукс, два слоя, а не Винда, у которой кроме гуёв ничего больше нет. Что здесь такого непонятного, чтобы в этом Симпли всплывали такие косяки? Сообщение отредактировал speccyfighter - 7.11.2019, 21:31 |
|
|
![]()
Сообщение
#32
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Потрахался в лайве
Код $ cat /image/.disk/info Simply Linux/x86_64 2017-07-07 День убит. Набросал костылей для правильной работы скрипта mplayer-vc в офигенно Простом Линукс и оттестировал Код $ cat mplayer-in-tty-in-alt-with-pulse.txt mplayer -nocache -softvol -vo fbdev2 -xy 1365 -fs -zoom -framedrop -ao pulse /home/altlinux/Trace Adkins - Just Fishin'-IheODRwalEw.mp4 AUDIOOUTPUT=""; PULSEENABLE=`ls -1 /usr/bin/pulse* | wc -l`; \ if [ $PULSEENABLE != 0 ]; then AUDIOOUTPUT="-ao pulse"; else AUDIOOUTPUT="-ao alsa"; fi AUDIOOUTPUT=""; PULSEENABLE=`ls -1 /usr/bin/pulse* | wc -l`; \ if [ $PULSEENABLE != 0 ]; then AUDIOOUTPUT="-ao pulse"; else AUDIOOUTPUT="-ao alsa"; fi; \ mplayer -nocache -softvol -vo fbdev2 -xy 1365 -fs -zoom -framedrop $AUDIOOUTPUT ./Trace\ Adkins\ -\ Just\ Fishin-IheODRwalEw.mp4 Теперь заключительная часть скрипта mplayer-vc будет выглядеть так Код # tail -n 15 /usr/bin/mplayer-vc-copy-3 # Опция/параметр выбора драйвера вывода аудио AUDIOOUTPUT="" PULSEENABLE=`ls -1 /usr/bin/pulse* | wc -l` if [ $PULSEENABLE != 0 ] then AUDIOOUTPUT="-ao pulse" else AUDIOOUTPUT="-ao alsa" fi # пропорционально масштабировать по коэффициенту # до X фреймбуфера, - в переменной XVSIZE mplayer -nocache -softvol $VIDEOOUTPUT -xy $XVSIZE -fs -zoom -framedrop $AUDIOOUTPUT "$VIDEOFILE" &>$HOME/mplayer-output.txt Осталась совсем херня, - всё это собрать до кучи и протестировать в: - IceArch - alt-p8-sysv-tde - alt-p9-xfce-sysv И чтобы никаких, блин, сбоев, поломок и прочей хрени. Да, и не забыть поправить help, добавив в него предупреждение, что для воспроизведения видео в виртуальной консоли, пользователь должен находиться в группе video. Потому шо в Линупсе, Код # grep 50[0,1] /etc/group altlinux:x:500: tester:x:501: кто первым встал, Код # who altlinux :0 2019-11-08 21:56 (:0) altlinux pts/0 2019-11-08 21:57 (:0.0) altlinux pts/1 2019-11-08 21:57 (:0.0) altlinux pts/2 2019-11-08 21:57 (:0.0) root pts/1 2019-11-08 21:57 (localhost) tester tty2 2019-11-08 22:43 (localhost) того и тапки Код # ls -l /dev/fb* crw-rw----+ 1 altlinux video 29, 0 ноя 8 21:56 /dev/fb0 Не врубился, почему в лайве Простого Линукс, man bash выдаёт No manual entry for bash. Пока ходил в магазин за продуктами, уснул порт из-за грёбаного ядерного usbcore. Кардридер с картой уснул и чуть не потерял наработки скриптов. Команды сброса резервом набивал вслепую. А костыль пакетом disable-usb-autosuspend, который написал за год до сборки образа Простого Линукс, в его образе вообще хер лежит. А когда вся эта херня уснула, получил заставку на гуях: Сессия заблокирована Вы будете перенаправлены на диалог разблокировки автоматически в течение нескольких секунд Само-собой эти секунды превратились в вечность. Хорошо, блин, хоть tty был открыт рутом. Иначе бы скрипты накрылись медным тазом. Писец какой-то... Сообщение отредактировал speccyfighter - 8.11.2019, 22:24 |
|
|
![]()
Сообщение
#33
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Да, не слабо , жуть какая то. Видимо простой линукс становится совсем простым . Мне кажется что kda гораздо лучше его
тестировал , чем это делают теперь . Хотя боюсь что проблемы общеальтовские, если вообще не общесистемные. Твой предыдущий вариант скрипта прекрасно работает в Ледяном. Как будет готов следующий вариант , скинь полный листинг - обязательно протестирую и запихаю в новую версию. Вообще, отличный скрипт , я его уже и к ranger-у прикрутил и в X-сах и в консоли , красота ![]() Как все устаканится, надо будет запихать его в Aur , очень полезная вещь ! |
|
|
![]()
Сообщение
#34
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Да, не слабо , жуть какая то. Видимо простой линукс становится совсем простым . Мне кажется что kda гораздо лучше его тестировал , чем это делают теперь . Хотя боюсь что проблемы общеальтовские, если вообще не общесистемные. Говна везде хватает: Это и usbcore с включенным Power Management по умолчанию для usb. (Вот нахер?!) Это и ядерный драйвер звука, который на некоторых архитектурах рассаживает карты не в те сокеты в какие должен. Из-за чего благополучно сломан правильный дефолт. И хуже всего то, что в Линукс на всё это поклали болт. Твой предыдущий вариант скрипта прекрасно работает в Ледяном. Как будет готов следующий вариант , скинь полный листинг - обязательно протестирую и запихаю в новую версию. Вообще, отличный скрипт , я его уже и к ranger-у прикрутил и в X-сах и в консоли , красота ![]() Как все устаканится, надо будет запихать его в Aur , очень полезная вещь ! Сделаю. Но наверняка не завтра. Завтра-послезавтра уйдёт на тест: говно на выходе гнать нехорошо. И экс-спектрумистам это не пристало. ![]() Сообщение отредактировал speccyfighter - 8.11.2019, 22:36 |
|
|
![]()
Сообщение
#35
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
надо будет запихать его в Aur , очень полезная вещь ! Надо будет тогда и комментарии на английский перевести. Но смогу только через гугл-транслятор. Если их совсем убрать, это кому-нибудь может сломать мозг. А они разъясняют назначение и кратко алгоритм каждого блока скрипта. Если лицензия GPL мешает, скрипт можно перевести и на public domain. Тут в принципе и не против. |
|
|
![]()
Сообщение
#36
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Надо будет тогда и комментарии на английский перевести. Но смогу только через гугл-транслятор. Если их совсем убрать, это кому-нибудь может сломать мозг. А они разъясняют назначение и кратко алгоритм каждого блока скрипта. Если лицензия GPL мешает, скрипт можно перевести и на public domain. Тут в принципе и не против. Гугл более менее нормально переводит, я думаю сойдет. С GPL - ом все нормально, никаких проблем . У меня все пакеты в Aur-е под GPL - ом : https://aur.archlinux.org/packages/?K=kostyalamer&SeB=m |
|
|
![]()
Сообщение
#37
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Хорошо. Так и порешили. Как доведу шэлл-код до ума (по крайней мере как думаю и надеюсь: нэ кажы гоп, покы нэ побачыш куды встрыбнэш), тогда выложу целиком.
|
|
|
![]()
Сообщение
#38
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Скрипт mplayer-vc переведён, исправлен и готов в тестовой версии mplayer-vc-copy-4.
Скрипт прошёл тест на лайве alt-p9-xfce-sysv-20191020-x86_64.iso (alsa) Следующее тестирование на: - лайве IceArch-0.985-x86_64.iso (pulse) - установленной alt-p8-sysv-tde (alsa) - лайве alt-simply-8.2.0-x86_64.iso (pulse) Отличия от версии mplayer-vc-0.2.1-alt1.i686.rpm: - Переведены на англиийский комментарии. - В help добавлено упоминание о необходимости наличия пользователя в группе video и необходимости переиндексации звуковых карт в системах с alsa, если карта не в сокет 0. А также подсказка при неверном указании опции вывода help. - Добавлено автоопределение необходимых драйверов для вывода видео и аудио. Целевое назначение скрипта: Максимальное упрощение воспроизведения локального видео в виртуальной консоли. Сообщение отредактировал speccyfighter - 9.11.2019, 2:51 |
|
|
![]()
Сообщение
#39
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Завершающий этап тестирования в p8-sysv-tde и p9-xfce-sysv
Масса эпитетов... И все матом: https://forum.altlinux.org/index.php?topic=...43700#msg343700 https://forum.altlinux.org/index.php?topic=...43701#msg343701 Кратко: Отказ в доступе к фреймбуферу для непревилегированного находящегося в группе video. Соответственно и отказ отображения видео в его сессии(ях). Исправление приведено во второй ссылке. Но у меня такой ехидный вопрос: Ну и как эту хрень теперь объяснять простому пользователю, который только-то и кино в консоли собрался посмотреть. Через упрощающий скрипт, который именно для него, обычного пользователя и предназначен. Не вынося ему мозг мешком опций. Через скрипт, следующий принципу KISS. ХренА себе KISS... Ну и шо теперь делать?.. |
|
|
![]()
Сообщение
#40
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
ХренА себе KISS... Ну и шо теперь делать?.. Да , как сказал Серега Цитата Другими словами, ничего нового: всё по-старому. Что в переводе с культурного на русский означает " Ничего нового , все через ж... " Проблемы с VB я вообще не понял, у меня в Арче Virtual Box прекрасно работает ![]() Как вариант , можно опакетить твой скрипт для Арча как есть, а для Альта пихать разные костыли. |
|
|
![]()
Сообщение
#41
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Было "хорошо", стало "ещё лучше":
https://forum.altlinux.org/index.php?topic=...43704#msg343704 https://forum.altlinux.org/index.php?topic=...43705#msg343705 Лучше б я под виндой сидел, а не выбрасывал больше 15-ти лет на вот это вот... |
|
|
![]()
Сообщение
#42
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Сейчас на прогоне этот скрипт. Прошёл тест на IceArch в tty от непревилегированного. Но с тестом застряло на альтовых правах доступа на /dev/fb0 в системах на sysv для непревилегированного с группой video. На альтах с systemd (SL820), непревилегированный вообще ложит болт на группу и права доступа на фреймбуфер при проигрывании видео в tty.
Код $ cat /usr/bin/mplayer-vc Код #!/bin/bash # mplayer-vc # # Script for full-screen viewing of local video in mplayer via console. # This script automatically adjusts the video output to full screen # for a monitor with any resolution and does not require the user # to enter additional options. # Copyright 2018 Yury Pakin <zxwarior<>yandex.ru> # LICENSE: # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # parse options opt=1 helptext="\ Script for full-screen viewing of local video in mplayer through console. This script automatically adjusts the video output to full screen for a monitor with any resolution and does not require additional options. To play video in the virtual console, the user must be in the video group. On alsa systems, if the sound card is not in socket 0, reindex the sound cards. Usage: mplayer-vc /path/to/videofile -h --help print this help text " [ $# -ne 0 ] || set -- -h while test "$opt" = "1"; do case "$1" in # fbgs options -h | --help) printf "$helptext" exit 1 ;; # others options -*) echo -e "\nunknown option: $1\nUse -h or --help.\n" exit 1 ;; *) opt=0 ;; esac done # Checking for a local file file "$*" &>/dev/null if [ "$?" != 0 ] then echo -e "\nNo such file\n" exit 0 fi VIDEOFILE=$(echo "$*") # Resolution of the original video file in X coordinate VIDEOWIDTH=`mediainfo "$VIDEOFILE" | grep 'Width' | awk '{printf $3}'` # Resolution of the original video file in Y coordinate VIDEOHEIGHT=`mediainfo "$VIDEOFILE" | grep 'Height' | awk '{printf $3}'` # Video image proportions in decimal VIDEOASPECT=`echo "$VIDEOWIDTH/$VIDEOHEIGHT" | bc -l` # Decimal proportions of framebuffer FBASPECT=`fbset --test | grep mode | awk -F '"' '{print $2}' | sed 's/x/\//' | bc -l |sed 's/^\(......\).*/\1/'` # Framebuffer resolution in Y coordinate in pixels FBHEIGHT=`fbset --test | grep mode | awk -F '"' '{print $2}' | awk -F 'x' '{printf $2}'` # If the framebuffer aspect ratio is greater than the aspect of # the video file, then calculate the scaling factor to # framebuffer Y. Then, calculate by the coefficient the maximum # allowable size in pixels when scaling the video file in X, so # that when scaling in -xy, the video file does not go beyond # the screen in the Y coordinate. if [[ $FBASPECT > $VIDEOASPECT ]] then VSIZEXXX=`echo "$FBHEIGHT/$VIDEOHEIGHT" | bc -l` XVSIZE=`echo "$VIDEOWIDTH*$VSIZEXXX" | bc -l` # otherwise compute X framebuffer else XVSIZE=`fbset --test|grep geometry|awk '{print $2}'` fi # Option / parameter for selecting video output driver # for virtual console VIDEOOUTPUT="" DEVOUT=`tty | cut -f3 -d / | head -c 3` if [ $DEVOUT = "tty" ] then setterm --blank 0 VIDEOOUTPUT="-vo fbdev2" fi # Option/parameter for selecting audio output driver # pulse or alsa AUDIOOUTPUT="" PULSEENABLE=`ls -1 /usr/bin/ | grep ^pulseaudio | wc -l` if [ $PULSEENABLE != 0 ] then AUDIOOUTPUT="-ao pulse" else AUDIOOUTPUT="-ao alsa" fi # Scale proportionally by factor to the X coordinate # of the framebuffer, in the XVSIZE variable. mplayer -nocache -softvol $VIDEOOUTPUT -xy $XVSIZE -fs -zoom -framedrop $AUDIOOUTPUT "$VIDEOFILE" &>/dev/null Если нужен тестовый выброс проигрывания видео, заменить в последней строке /dev/null на $HOME/mplayer-output.txt |
|
|
![]()
Сообщение
#43
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Угу... Там же права с рутовым доступом. Единственный костыль, который туда можно засунуть, это вот эту вот херню в preinstall или postinstall, - т.е. правку через sed Код # grep ' <fb> ' /etc/security/console.perms.d/50-default.perms.probe <console> 0600 <fb> 0600 root Код # sed -i 's/0600 <fb> 0600 root/0660 <fb> 0660 root.video/' /etc/security/console.perms.d/50-default.perms.probe Код # grep ' <fb> ' /etc/security/console.perms.d/50-default.perms.probe <console> 0660 <fb> 0660 root.video и пакет будет называться mplayer-vc-bullshit-0.3-alt0.1-noarch.rpm А комментарием к postinstall добавить в спэке: Fac*ing bullshit Иначе без этого херового говна, для других пользователей в альте не заработает. Ибо распределение доступа по группе, в альте на sysv нахер поломано, неверным конфигурированием прав доступа к фреймбуферу. А в альте с systemd, на права доступа по группе, вообще кладётся болт. И каждый залогинившийся урод, может читать и писать во фреймбуфер. Хера себе безопасность... Сообщение отредактировал speccyfighter - 12.11.2019, 0:43 |
|
|
![]()
Сообщение
#44
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Тогда так наверное и сделаем в Арче будет mplayer-mc , а в Альте mplayer-vc-bullshit
Давай пока с зависимостями для арча определимся что в нем писать : mplayer что еще ? |
|
|
![]()
Сообщение
#45
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 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 |
|
|
![]()
Сообщение
#46
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Давай пока с зависимостями для арча Кстати увидел что тут Поиск_пакета_по_названию_файла команда приведена неправильная: Код root<>archiso:~/# pacman -Fs pacman ошибка: недопустимый параметр '-s' Правильно в англоязычной вики: Search_for_a_package_that_contains_a_specific_file Код root<>archiso:~/# pacman -F pacman
core/pacman 5.2.1-1 (base base-devel) [установлен] usr/bin/pacman usr/share/bash-completion/completions/pacman extra/xscreensaver 5.43-1 usr/lib/xscreensaver/pacman archlinuxcn/xscreensaver-arch-logo 5.43-1 usr/lib/xscreensaver/pacman Сообщение отредактировал speccyfighter - 13.11.2019, 4:45 |
|
|
![]()
Сообщение
#47
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 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 |
|
|
![]()
Сообщение
#48
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Юра , вот пакет : https://yadi.sk/d/wpOpaxqCL9j4dg
а вот PKGBUILD к нему : https://yadi.sk/d/YTquzKWd9dwGAQ Архив с твоим скриптом лежит на клубном хостинге. Пакет проверил - работает. Скачиваешь его и устанавливаешь прямо из папки через sudo pakman -U его_имя собрать и установить под пользователем скачиваешь PKGBUILD в этой же папке делаешь makepkg -i Посмотри PKGBUILD если все устраивает , пушну его в Aur |
|
|
![]()
Сообщение
#49
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Юра , вот пакет : https://yadi.sk/d/wpOpaxqCL9j4dg Пакет проверил - работает. Скачиваешь его и устанавливаешь прямо из папки через sudo pakman -U его_имя Собственно сами тесты прошли. Последовательность подготовки и тестирования в лайве IceArch через QTerminal: Код # Запуск QTerminal Код root<>archiso:~/# mv /usr/local/bin/mplayer-vc /usr/local/bin/mplayer-vc.bak Код root<>archiso:~/# pacman -Sy Код root<>archiso:~/# pacman -U mplayer-vc-1.0-1-x86_64.pkg.tar.xz Код root<>archiso:~/# useradd -Um test Код root<>archiso:~/# passwd test Код root<>archiso:~/# gpasswd -a test video Код root<>archiso:~/# gpasswd -a test audio Код root<>archiso:~/# su - test Код [test<>archiso ~]$ $ pulseaudio --daemonize=no & Код [test<>archiso ~]$ $ export DISPLAY=":0" Код [test<>archiso ~]$ tty /dev/pts/3 Код [test<>archiso ~]$ mplayer-vc ./Trace\ Adkins\ -\ Just\ Fishin\'-IheODRwalEw.mp4 # тест Код [test<>archiso ~]$ jobs [1]+ Запущен pulseaudio --daemonize=no & [test<>archiso ~]$ fg 1 pulseaudio --daemonize=no ^C[test<>archiso ~]$ jobs [test<>archiso ~]$ Тест в tty от пользователя, как обычно. С добавлением пользователя в группы video и audio, перед его логином в tty. Архив с твоим скриптом лежит на клубном хостинге. В смылсле в теме на форуме? собрать и установить под пользователем скачиваешь PKGBUILD в этой же папке делаешь makepkg -i Не, не собирал. Только оттестировал твой готовый пакет. К тому же в твоём лайве нельзя выйти в dm с логином пользователя (из-за автологина в X root), а систем на systemd на моих винчестерах никогда не было. а вот PKGBUILD к нему : https://yadi.sk/d/YTquzKWd9dwGAQ Посмотри PKGBUILD если все устраивает , пушну его в Aur Только версию смени с 1.0 на 0.3.0 |
|
|
![]()
Сообщение
#50
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Нет исходники лежат тут : http://altlinuxclub.ru/arhiv/ (но хитрый хостинг туда просто так не пускает, только по готовым ссылкам) как и остальные исходники моих арчевских пакетов.
Вечером поменяю версию. PS если захочешь собрать пакет для слаки или дивана , клубный хостинг всегда в твоем распоряжении ![]() Сообщение отредактировал kostyalamer - 14.11.2019, 8:08 |
|
|
![]()
Сообщение
#51
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Юра, твой скрипт в Aur-е : https://aur.archlinux.org/packages/mplayer-vc
В ледяном можешь установить прямо из live через pamac-manager ( иконка в трее icewm ). В нем надо в настройках включить поддержку Aur после чего найти пакет ( лупа в левом углу ) и собрать его. Проверено , работает. После сегодняшнего глобального обновления у меня стал глючить pacaur , пришлось поставить старый добрый йогурт (yaourt) он устанавливает твой скрипт без каких либо проблем. |
|
|
![]()
Сообщение
#52
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
В связи с недавно изменившимся стандартом : https://archlinux.org.ru/forum/topic/19525/?page=1 подправил PKGBUILD , перезалил , теперь при сборке не ругается . Добавил пакет в ледяной , все работает.
|
|
|
![]()
Сообщение
#53
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
В связи с недавно изменившимся стандартом : https://archlinux.org.ru/forum/topic/19525/?page=1 подправил PKGBUILD , перезалил , теперь при сборке не ругается . Добавил пакет в ледяной , все работает. Отлично. Спасибо Костя. Значит остался багрепорт с этой ж0пой в альте (проявится на sysv, но не в systemd), в которой похрен указание группы, прав на которую в системе не существует: Код $ ls -l /dev/fb* crw------- 1 altlinux video 29, 0 ноя 15 19:12 /dev/fb0 Но объём выбросов для багрепорта, меня пугает. Ибо смотреть и/или давать выбросы в багрепорт, надо как минимум в IceArch (Arch), devuan и наверное желательно slackware-current, а это только из полной сборки куда входит devel-набор. В последнем случае, возможности мои не бесконечны и возможно придётся ограничиться IceArch и Devuan. На предмет разруливания прав для фреймбуфера, которые в альтах на sysv сломаны. |
|
|
![]()
Сообщение
#54
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Масса полезнейшего инфо по bash (для mplayer-vc)
Bash Reference Manual http://www.gnu.org/software/bash/manual/bash.html Advanced Bash-Scripting Guide https://www.opennet.ru/docs/RUS/bash_scripting_guide/ Краткий учебник по sed. https://emulek.github.io/sed/index.html Глава 7. Примеры из info sed. (sed и процедуры) https://emulek.github.io/sed/ch07.html Работа со строками в bash https://webhamster.ru/mytetrashare/index/mtb0/1516 How do you take a suffix of a string in bash using negative offsets? https://stackoverflow.com/questions/3147660...egative-offsets In bash, how can I check if a string begins with some value? https://stackoverflow.com/questions/2172352...with-some-value Bash String Manipulation Examples – Length, Substring, Find and Replace https://www.thegeekstuff.com/2010/07/bash-s...g-manipulation/ Grabbing the first [x] characters for a string from a pipe https://unix.stackexchange.com/questions/34...ing-from-a-pipe How to extract the first two characters of a string in shell scripting? https://stackoverflow.com/questions/1405611...shell-scripting How to get the last character of a string in a shell? https://stackoverflow.com/questions/1754289...ring-in-a-shell Delete the last character of a string using string manipulation in shell script https://unix.stackexchange.com/questions/14...l-script/144345 Запросы: вывод последнего символа в строке bash parsing 1st symbols of string bash parsing last symbols of string bash $* $? $@ $# bash Сообщение отредактировал speccyfighter - 24.11.2019, 0:40 |
|
|
![]()
Сообщение
#55
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Обработчик указанного пути для mplayer-vc:
Код $ cat ./mplayer-vc-N02 #!/bin/bash # Каждый путь - слово ($@), для пути ../* : "каталог медиафайл каталог" # Если файл Media, - вывести на stdout (проиграть) # Каталоги и не Media пропустить # Парсить параметр скрипта: ../* или ../file.mp4 for vfile in "$@" do # Пропустить каталог (шоб mediainfo не вис на каталоге) typefile=`file -b "$vfile"` if [[ $typefile != "directory" ]] then # Если тип файла Video, то проиграть mediayes=`mediainfo "$vfile" | grep ^Video$ | wc -w` if [ "$mediayes" == 1 ] then echo "$vfile" fi fi done Для путей: ../file.mp4 - проиграть файл ../* - проиграть видео файлы в каталоге. Отключить субтитры: -noautosub - внешние субтитры -nosub Валится на внешних субтитрах: Код VO: [xv] 848x480 => 320x180 Planar YV12 A: 35.9 V: 35.9 A-V: -0.000 ct: -0.057 0/ 0 9% 1% 1.1% 0 0 61% Subtitle word '孼' too long! Добавить явно -vo xv если не tty (неизвестен дефолт и наличие автоопределения) Ввести паузу в 3 секунды между клипами. Бесконечный цикл для ../* или ./*.mp4: Код while true; do date +%Y%m%d-%T > current-datetime.txt; sleep 1; done Сообщение отредактировал speccyfighter - 24.11.2019, 20:16 |
|
|
![]()
Сообщение
#56
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1669 Регистрация: 12.10.2010 Вставить ник Цитата Пользователь №: 1950 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
|
|
|
![]()
Сообщение
#57
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Код $ cat mplayer-vc-N02--single-or-many # One or several files selector # Если аргумент один, то if [ "$#" == 1 ] then # если файл это не каталог, то vfile="$@" typefile=`file -b "$vfile"` if [[ $typefile != "directory" ]] then # если тип файла Video, то проиграть mediayes=`mediainfo "$vfile" | grep ^Video$ | wc -w` if [ $mediayes == 1 ] then # Проиграть с подстановкой переменных выше # http://forum.russ2.com/index.php?showtopic=4431&view=findpost&p=51470 mplayer -nocache -softvol -noautosub -xy 1365 -fs -zoom -framedrop -ao alsa "$vfile" &>/dev/null exit 0 else echo -e "\nЭто не видео файл\n" exit 0 fi elif [[ $typefile == "directory" ]] then echo -e "\nЭто каталог\n" exit 0 fi else if [ "$#" > 1 ] then echo "бесконечный цикл нескольких видео" # http://forum.russ2.com/index.php?showtopic=4431&view=findpost&p=51512 fi fi Теперь надо, поправить хэлп, ввести паузу, обнулить переменную VIDEOFILE (а надо?), переменные сводить воедино и лепить скрипты до кучи. С завершением на тесте с моделированием ошибок. На предмет мало-мальской "защиты от дурака". "защита от дурака" - это не оскорбление. Это термин на платформе ZX Spectrum, означающий защиту от непрогнозируемых действий пользователя. В финальном скрипте будет: - Проигрывание в полный экран одного видеофайла с завершением проигрывания. - Проигрывание в полный экран нескольких видеофайлов по маске бесконечным циклом. В финальном скрипте не будет: - Мана не будет, ибо всё просто, автоматика где возможно, и нафик ман не нужен. Разве что м.б.(?) кратко в хэлп о хоткеях (перемотка, громкость, останов, пауза, время, мьют). Всё как во времена бородатого программирования, kiss в чистом виде. Без выносов мозга в шелл. (Но и без проверок никак: на непустых подкаталогах, mediainfo впадает в анабиоз, ибо ему и в голову не приходит, что ему могут подсунуть не файл, а подкаталог, да ещё и непустой, из-за чего он бывает в глубоком трансе) - Рандома списка не будет. Ибо работает через интерпретатор, скрипт пухнет, проверки дофига тактов занимают, а планировалось чтобы это работало на всяком говне с фееричным даунгрейдом железа. Насколько это только сегодня возможно. - Основная и главная цель скрипта: максимальное упрощение типовой задачи в шелл, - проигрывание видео в консоли. (без езды по ушам, что шелл только для админов) Сообщение отредактировал speccyfighter - 25.11.2019, 1:56 |
|
|
![]()
Сообщение
#58
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 157 Регистрация: 6.3.2019 Вставить ник Цитата Пользователь №: 3002 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Юра, хз чего там в Альте, но в Арче твой скрипт прекрасно работает ![]() ![]() |
|
|
![]()
Сообщение
#59
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
|
|
|
![]()
Сообщение
#60
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Число, это математическая величина и пишется она без пробела, ленупсовый урод
Код $ mediainfo /home/tos-1720x720-cfg01.mkv | grep Width Width : 1 720 pixels А из-за твоей ленупсовой тупости надо лепить километры г*на любым из вариантов, да ещё через реверс, чтобы получить математическую величину, а не хрень на палочке: Код $ mediainfo /home/tos-1720x720-cfg01.mkv | grep Width | cut -f 2 -d ':' | rev | cut -f 2- -d ' ' | rev | sed 's/ //g' 1720 Код $ mediainfo /home/tos-1720x720-cfg01.mkv | grep Width | rev | awk '{$1=""; print $0 }' | rev | awk -F ':' '{print $2}' | sed 's/ //g' 1720 Потому шо эта фигня должна уйти в переменную. Тебе же тупому невдомёк, что сейчас разрешения под тысяч пять. Попробуй их распарси из твоего выброса говна с пробелами. Бестолочь блин... |
|
|
![]()
Сообщение
#61
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Похоже есть способ получше чем 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 |
|
|
![]()
Сообщение
#62
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Обработчик нажатия клавиши Qq для выхода из бесконечного цикла проигрывания:
(с адаптацией под mplayer-vc) q|Q - останов проигрывания с выходом из цикла Нажатие учитывает английскую, русскую, украинскую раскладки qwerty/йцукен Код $ cat button-4.sh #!/bin/bash # Опрос 3 секунды нажатия клавиши 'q' для выхода for (( i=1; i <= 3; i++ )) do # Очистить переменную для ввода с клавиатуры B="" # Прочитать один символ со стандартного ввода read -s -t 1 -n 1 B # Опрос нажатия клавиши case "$B" in [qQйЙ] ) B="q";; esac # Выход если нажата клавиша q if [ "$B" == "q" ] then echo -e "\nВыход\n" exit 0 fi done Подробно об использовании опроса клавиатуры в "мёртвом" цикле: Учим bash-скрипты, пишем Sokoban Сообщение отредактировал speccyfighter - 28.11.2019, 10:15 |
|
|
![]()
Сообщение
#63
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
mplayer-vc версии 0.4.0
Код #!/bin/bash # mplayer-vc # # Script for full-screen viewing of local video in mplayer via console. # This script automatically adjusts the video output to full screen # for a monitor with any resolution and does not require the user # to enter additional options. # Copyright 2018 Yury Pakin <zxwarior<>yandex.ru> # LICENSE: # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # parse options opt=1 helptext="\ Script for full-screen viewing of local video in mplayer through console. This script automatically adjusts the video output to full screen for a monitor with any resolution and does not require additional options. To play video in the virtual console, the user must be in the video group. On alsa systems, if the sound card is not in socket 0, reindex the sound cards. Usage: mplayer-vc /path/to/videofile Playing and exit mplayer-vc ../path/to/*.mp4 Endless cycle mplayer-vc ./path/to/* Endless cycle Keys: 9 / 0 Decrease/increase volume m Mute sound p / SPACE Pause (pressing again unpauses) f Toggle fullscreen (X-only) LEFT and RIGHT Backward/forward 10 seconds UP and DOWN Forward/backward 1 minute PGUP and PGDWN Forward/backward 10 minutes 1 and 2 Adjust contrast 3 and 4 Adjust brightness Playing a single video file: q / ESC / Ctrl+c Stop playing and quit Playing a loop of video files: q / ESC Go to the next video Double-press the q key Stop and exit video file loop playback Double-press Ctrl+C Stop and exit video file loop playback (tty only) -h --help print this help text " [ $# -ne 0 ] || set -- -h while test "$opt" = "1"; do case "$1" in # fbgs options -h | --help) printf "$helptext" exit 1 ;; # others options -*) echo -e "\nunknown option: $1\nUse -h or --help.\n" exit 1 ;; *) opt=0 ;; esac done VIDEOFILE= # Framebuffer resolution and permissible video file resolution resolution () { # Resolution of the original video file in X coordinate VIDEOWIDTH=`echo "$MEDIAINFO" | grep 'VIDEO_WIDTH' | awk -F '=' '{print $2}'` # Resolution of the original video file in Y coordinate VIDEOHEIGHT=`echo "$MEDIAINFO" | grep 'VIDEO_HEIGHT' | awk -F '=' '{print $2}'` # Video image proportions in decimal VIDEOASPECT=`echo "$VIDEOWIDTH/$VIDEOHEIGHT" | bc -l` # Decimal proportions of framebuffer FBASPECT=`fbset --test | grep mode | awk -F '"' '{print $2}' | sed 's/x/\//' | bc -l |sed 's/^\(......\).*/\1/'` # Framebuffer resolution in Y coordinate in pixels FBHEIGHT=`fbset --test | grep mode | awk -F '"' '{print $2}' | awk -F 'x' '{printf $2}'` # If the framebuffer aspect ratio is greater than the aspect of # the video file, then calculate the scaling factor to # framebuffer Y. Then, calculate by the coefficient the maximum # allowable size in pixels when scaling the video file in X, so # that when scaling in -xy, the video file does not go beyond # the screen in the Y coordinate. if [[ $FBASPECT > $VIDEOASPECT ]] then VSIZEXXX=`echo "$FBHEIGHT/$VIDEOHEIGHT" | bc -l` XVSIZE=`echo "$VIDEOWIDTH*$VSIZEXXX" | bc -l` # otherwise compute X framebuffer else XVSIZE=`fbset --test|grep geometry|awk '{print $2}'` fi } # Option / parameter for selecting video output driver # for virtual console VIDEOOUTPUT="" DEVOUT=`tty | cut -f3 -d / | head -c 3` if [ $DEVOUT = "tty" ] then setterm --blank 0 VIDEOOUTPUT="-vo fbdev2" fi # Option/parameter for selecting audio output driver # pulse or alsa AUDIOOUTPUT="" PULSEENABLE=`ls -1 /usr/bin/ | grep ^pulseaudio | wc -l` if [[ $PULSEENABLE != 0 ]] then AUDIOOUTPUT="-ao pulse" else AUDIOOUTPUT="-ao alsa" fi ## ## Play section ## # One or several files selector # # If there is one argument, then if [[ $# == 1 ]] then MEDIAINFO= MEDIAYES= # if the file is not a directory, then VIDEOFILE="$@" TYPEFILE=`file -b "$VIDEOFILE"` if [ "$TYPEFILE" != "directory" ] then MEDIAINFO=`mplayer -identify -vo null -ao null -frames 0 "$VIDEOFILE" 2>/dev/null | sed -n 's/^ID_//p' | sed -e '$ d'` MEDIAYES=`echo "$MEDIAINFO" | grep "CLIP_INFO_" | wc -c` if [[ $MEDIAYES > 0 ]] then resolution # Play with variable substitution above clear; mplayer -nocache -softvol -noautosub -nosub $VIDEOOUTPUT -xy $XVSIZE -fs -zoom -framedrop $AUDIOOUTPUT "$VIDEOFILE" &>/dev/null exit 0 else echo -e "\nThis is not a video file\n" exit 0 fi elif [ "$TYPEFILE" == "directory" ] then echo -e "\nThis is a directory\n" exit 0 fi else # If there are a lot of files, then if [[ $# > 1 ]] then MEDIAINFO= MEDIAYES= # all of them in an infinite loop while true do # Each path is a word ($@), for the path ../*: "directory mediafile directory" # If the file is Media, output to stdout (play) # Directories and non-media skip # Parse script parameter: ../* or ../file.mp4 for VIDEOFILE in "$@" do # Skip the directory TYPEFILE=`file -b "$VIDEOFILE"` if [ "$TYPEFILE" != "directory" ] then MEDIAINFO=`mplayer -identify -vo null -ao null -frames 0 "$VIDEOFILE" 2>/dev/null | sed -n 's/^ID_//p' | sed -e '$ d'` MEDIAYES=`echo "$MEDIAINFO" | grep "^CLIP_INFO_" | wc -c` if [[ $MEDIAYES > 0 ]] then resolution # Scale proportionally by factor to the X coordinate # of the framebuffer, in the XVSIZE variable. clear; mplayer -nocache -softvol -noautosub -nosub $VIDEOOUTPUT -xy $XVSIZE -fs -zoom -framedrop $AUDIOOUTPUT "$VIDEOFILE" &>/dev/null # Poll 3 seconds of pressing the 'q' key to exit for (( i=1; i <= 3; i++ )) do # Clear variable for keyboard input B="" # Read one character from standard input read -s -t 1 -n 1 B # Key Press Poll case "$B" in [qQ] ) B="q";; esac # Exit if 'q' key is pressed if [ "$B" == "q" ] then exit 0 fi done fi fi done done fi fi Изменения: - Расширен help - Добавлен блок проигрывания группы видеофайлов по маске в замкнутом цикле - Добавлен обработчик опроса клавиатуры для выхода из проигрывания в цикле - Два блока определения разрешения монитора, файла и масштабирование выделены в отдельную функцию - Убрана зависимость на mediainfo: теперь анализом разрешений и наличия видеофайла занимается сам mplayer Скрипт умеет: - Проигрывать одиночный видео файл с завершением проигрывания или завершением по клавише q - Проигрывать группу файлов по произвольной маске в замкнутом цикле с завершением по двойному нажатию клавиши q - При проигрывании в tty выбирает драйвер вывода видео - При проигрывании в Х-сах драйвер вывода видео выбирает плеер - В системе с пульсаудио используется пульсаудио; в системе с alsa, - alsa драйвер - Видео автоматически масштабируется и подстравается под разрешение монитора Недостатки: - Не смог убрать блинкование курсора. Поэтому командой clear в скрипте, курсор загоняется в левый верхний угол экрана. Прямыми командами setterm --cursor off setterm --cursor on tput civis tput cnorm курсор выключается и включается, но из скрипта это не работает при проигрывании видео. Принимаются любые дельные практические советы. Скриптовый help: Код Script for full-screen viewing of local video in mplayer through console.
This script automatically adjusts the video output to full screen for a monitor with any resolution and does not require additional options. To play video in the virtual console, the user must be in the video group. On alsa systems, if the sound card is not in socket 0, reindex the sound cards. Usage: mplayer-vc /path/to/videofile Playing and exit mplayer-vc ../path/to/*.mp4 Endless cycle mplayer-vc ./path/to/* Endless cycle Keys: 9 / 0 Decrease/increase volume m Mute sound p / SPACE Pause (pressing again unpauses) f Toggle fullscreen (X-only) LEFT and RIGHT Backward/forward 10 seconds UP and DOWN Forward/backward 1 minute PGUP and PGDWN Forward/backward 10 minutes 1 and 2 Adjust contrast 3 and 4 Adjust brightness Playing a single video file: q / ESC / Ctrl+c Stop playing and quit Playing a loop of video files: q / ESC Go to the next video Double-press the q key Stop and exit video file loop playback Double-press Ctrl+C Stop and exit video file loop playback (tty only) -h --help print this help text Сообщение отредактировал speccyfighter - 28.11.2019, 13:51 |
|
|
![]()
Сообщение
#64
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Ещё один недостаток mplayer-vc 0.4.0
- Субтитры выключены. Потому как отображение шрифта во фреймбуфере, при воспроизведении матроски, не подходит даже под определение говно. Ибо слишком похвально. Выглятит это так: Текст субтитров, как черезстрочная развёртка с вырезкой пикселов по вертикали. Затем представьте, что вы взяли эту же надпись с прозрачным фоном, и сдвинув по X пикселов на 20, наложили её на неё же. Это говнище, даже показывать никому нельзя. А скриншот в tty не снять, - это вообще не работает. Никак. Ни через граббер, ни через дамп-конвертация. Только через цифровую зеркалку, штук за пять зелёных. И как это исправить, не знаю. Поэтому субтитры выключены нахрен, чтобы не показывать это грандиозное позорище. |
|
|
![]()
Сообщение
#65
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Отправил в Aur : https://aur.archlinux.org/packages/mplayer-vc/
поставил оттуда через yaourt -S mplayer-vc проверил, работает. |
|
|
![]()
Сообщение
#66
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Отправил в Aur : https://aur.archlinux.org/packages/mplayer-vc/ поставил оттуда через yaourt -S mplayer-vc проверил, работает. Отлично. Спасибо за дополнительный тест. Хотел полюбопытствовать, а как это делает mpv и руками покрутить. Ага, щас. У альтов в p9 рассинхронизированы версии mpv и библиотек. И mpv в p9 на текущий момент в альтах никак не работает. |
|
|
![]()
Сообщение
#67
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Отлично. Спасибо за дополнительный тест. Хотел полюбопытствовать, а как это делает mpv и руками покрутить. Ага, щас. У альтов в p9 рассинхронизированы версии mpv и библиотек. И mpv в p9 на текущий момент в альтах никак не работает. В текущем ледяном knn прикрутил к links - у твой mplayer-vc и mpv на выбор. Единственное , не помню это в 0.988 или в том что у меня собирается на компе. |
|
|
![]()
Сообщение
#68
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
В текущем ледяном knn прикрутил к links - у твой mplayer-vc и mpv на выбор. Единственное , не помню это в 0.988 или в том что у меня собирается на компе. Как-нибудь грузану свежего лядяного и гляну, на предмет mpv. Но как же жаль что на nx6110 проблема с чипсетом: можно было бы оптимзировать по драйверу компромиссом и под старое железо. Видеоролик для теста субтитров в tty через фреймбуфер (свободное скачивание): https://www.libde265.org/downloads-videos/ Прямая ссылка для теста субтитров матроски в tty: https://www.libde265.org/hevc-bitstreams/to...0x720-cfg01.mkv Для монитора 1366х768 через фреймбуфер (в tty) в полный экран: Локальный просмотр mplayer -vo fbdev2 -xy 1366 -fs -zoom -ao pulse,alsa, -slang rus,en tos-1720x720-cfg01.mkv Онлайн mplayer -vo fbdev2 -xy 1366 -fs -zoom -ao pulse,alsa, -slang rus,en https://www.libde265.org/hevc-bitstreams/to...0x720-cfg01.mkv Для Х-сов -vo xv -vo gl |
|
|
![]()
Сообщение
#69
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 157 Регистрация: 6.3.2019 Вставить ник Цитата Пользователь №: 3002 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
- у меня нет звука (и его регулировки) ни в Х, ни в Консоли.
[- в простом mplayer - есть , в предыдущей версии mplayer-vc - в консоли - точно было. - 0.988 - предыдущий( по дефолту в 0.988) mplayer-vc переименовал в mplayer-vc-1 - свежая версия - 'yaourt -S mplayer-vc' ] ----------------------------------- комп - Sams-rv510 - как понимаю с пресловутой гибридной графикой. upd: !! 2 монитора. и пока проверял только с подключеным дополнительным внешним. =========== p.s. в 0.988 Линксу уже прикручен выбор "mplayer-vc/mpv/..." и в консоли, и в Иксах (при "активации" видео-файла). ------ запустив 'links'/'lweb' в консоли ; или как-либо в Иксах - удобнее сначала "S" - там есть уже "локальные закладки". Сообщение отредактировал knn - 29.11.2019, 8:34 |
|
|
![]()
Сообщение
#70
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 157 Регистрация: 6.3.2019 Вставить ник Цитата Пользователь №: 3002 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
как снять выхлоп( "беззвучный") - не знаю
|
|
|
![]()
Сообщение
#71
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
У меня в консоли все нормально, звук есть , а в X-сах он действительно пропал ( вчера не заметил ) дело в том что проверяю на своих старых домашних видео снятых телефоном, а там звук появлеется эпизодически. Юра, как поправишь - перезалью.
PS пишу из консоли из lweb-а , очень удобная вещь ! |
|
|
![]()
Сообщение
#72
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 157 Регистрация: 6.3.2019 Вставить ник Цитата Пользователь №: 3002 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
|
|
|
![]()
Сообщение
#73
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
У меня в консоли все нормально, звук есть , а в X-сах он действительно пропал ( вчера не заметил ) дело в том что проверяю на своих старых домашних видео снятых телефоном, а там звук появлеется эпизодически. Брось мне в приват или куда-нибудь такое видео на котором звук пропал, для теста. И сообщи где пропадает, под непривилегированным пользователем? И в каких он состоит группах. Сообщение отредактировал speccyfighter - 29.11.2019, 19:28 |
|
|
![]()
Сообщение
#74
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
|
|
|
![]()
Сообщение
#75
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
В лайве IceArch-0.988 у меня всё намного хуже чем у вас
![]() В этом скрипте http://forum.russ2.com/index.php?showtopic...ost&p=51532 звук не пропадает и всё время не пропадал, но: Не могу выйти из цикла проигрывания нескольких видео при запуске из Х-терминала командой './mplayer-vc-test-N035 ./*'. По первому q, mplayer завершает проигрывание видеофайла. По второму q никакой реакции на выход из скрпта. Убил 12 часов и заметил такую штуку: - В sakura выход из скрипта по q невозможен в принципе. Никак. - В QTerminal выход по второму q из скрипта тоже невозможен, но: В Qterminal, даже если окно терминала единственное на столе, в паузе между видео оно неактивное (чего не может быть, но оно есть) и это видно по курсору, - он не залит, а контуром. И чтобы сработало второе q, нужно курсором мыха клацнуть по окну терминала. После этого клаца, курсор qterminal станет залитым (окно терминала станет активным) и второе q завершит работу скрипта. Что характерно, в tty двойной q срабатывает для выхода из скрипта, - что естественно, - в tty же нет окон и нечему становиться неактивным. Но вообще-то, единственное окно на рабочем столе всегда должно быть активным. И неактивным, оно как бы и не может стать, второго-то окна нет. Но эта неактивность единственного окна на Рабочем столе есть. И она мешает выходу по второму q., не давая выйти из цикла. Хотел поставить xterm, чтобы посмотреть, зависит ли это от самого терминала или это зависит от icewm который оставляет единственное окно на столе неактивным (!!!), и тут же нарвался на косячный пакет с косячной библиотекой которая попала в IceArch-0.988: Код root<>archiso:~/# pacman -Sy :: Обновление баз данных пакетов... core не устарел extra не устарел ошибка: не удалось получить файл 'community.db' из mirror.yandex.ru : Failed writing body (2957 != 12582) 0% ошибка: не удалось получить файл 'community.db' из mirror.yandex.ru : Failed writing body (0 != 16125)-] 0% ошибка: не удалось получить файл 'community.db' из archlinux.zepto.cloud : Failed writing body (0 != 14140)0% ошибка: не удалось получить файл 'community.db' из mirror.ps.kz : Failed writing body (2948 != 4320)---] 0% ошибка: не удалось получить файл 'community.db' из mirror.ps.kz : Failed writing body (0 != 16120)-----] 0% ошибка: не удалось получить файл 'community.db' из ftp.byfly.by : Failed writing body (2909 != 12960)--] 0% ошибка: не удалось получить файл 'community.db' из mirror.datacenter.by : Failed writing body (2909 != 4320)% ошибка: не удалось получить файл 'community.db' из archlinux.ip-connect.vn.ua : Failed writing body (2909 != 5760) ошибка: не удалось получить файл 'community.db' из archlinux.ip-connect.vn.ua : Failed writing body (0 != 16366) ошибка: не удалось получить файл 'community.db' из mirrors.nix.org.ua : Failed writing body (0 != 5489)] 0% ошибка: не удалось получить файл 'community.db' из mirrors.nix.org.ua : Failed writing body (0 != 16366) 0% ошибка: не удалось получить файл 'community.db' из mirrors.n-ix.net : Failed writing body (1462 != 11520) 0% ошибка: не удалось получить файл 'community.db' из mirrors.n-ix.net : Failed writing body (0 != 16166)-] 0% ошибка: не удалось получить файл 'community.db' из mirrors.evowise.com : Failed writing body (3219 != 11616)% ошибка: не удалось получить файл 'community.db' из mirror.rackspace.com : Failed writing body (3030 != 8208)% ошибка: не удалось обновить community (ошибка в библиотеке загрузки) ошибка: не удалось получить файл 'archlinuxcn.db' из cdn.repo.archlinuxcn.org : Failed writing body (0 != 16085) ошибка: не удалось обновить archlinuxcn (ошибка в библиотеке загрузки) ошибка: failed to synchronize all databases root<>archiso:~/# Вот она эта засада: ошибка: не удалось получить файл 'archlinuxcn.db' из cdn.repo.archlinuxcn.org : Failed writing body (0 != 16085) ошибка: не удалось обновить archlinuxcn (ошибка в библиотеке загрузки) ошибка: failed to synchronize all databases Даже контрольную проверил, - не придраться: Код root<>archiso:/path/# du -b ./IceArch-0.988-x86_64.iso 1552662528 ./IceArch-0.988-x86_64.iso root<>archiso:/path/# root<>archiso:/path/# head -c 1552662528 ./IceArch-0.988-x86_64.iso | md5sum 7576a7cf4a4127d7c3579b0b3f33032c - root<>archiso:/path/# head -c 1552662528 /dev/sdb | md5sum 7576a7cf4a4127d7c3579b0b3f33032c - Т.е. судя по всему, в репозиторий попала сломанная библиотека. И на эту неудачу в этот момент с ней был собран IceArch-0.988, в котором из-за этой библиотеки в арче и сломано было обновление баз и установка пакетов. И что-то мне припоминается, что в IceArch-0.985 и с библиотекой и с обновлением баз было хорошо. У меня в консоли все нормально, звук есть , а в X-сах он действительно пропал ( вчера не заметил ) Но будем оптимистами ![]() Приглашения логина в лайве IceArch нет, а сразу рутом. Поэтому делаю в qterminal: # useradd tester # passwd tester # gpassw -a tester video # gpassw -a tester audio # su - tester $ export DISPLAY=:0 $ /usr/bin/pulseaudio --daemonaze=no & # при этом он матюгнулся на dbus для сессии Проигрываю от пользователя, то да сё... И в какой-то момент гадский пульс рушится, а плееру поплохело от этого и он сваливается в alsa. А поскольку у меня по-дефолту без переиндексации, аудиокарта сидит не в сокет 0, звука ни хрена. Пока не указал карту явно, из-за упавшей пульсы, прямой командой с параметром указывающим на реальную звуковую: -ao alsa:device=hw=1 У меня в консоли все нормально, звук есть , а в X-сах он действительно пропал alsa так не умеет ![]() Она через dmix или везде работает или везде не работает. И по большому счёту, алсе по-минимуму достаточно ядерного драйвера и библиотеки libalsa для вывода звука. Лишь бы звуковая карта сидела в сокете 0. И вот из-за этой засады Код root<>archiso:~/# sed "" /proc/asound/cards 0 [HDMI ]: HDA-Intel - HDA Intel HDMI HDA Intel HDMI at 0xc1210000 irq 52 1 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xc1214000 irq 49 звуковые, для вывода звука через алса, надо рассадить по правильным сокетам, чтобы плеер не тошнило если пульса упала Код root<>archiso:~/# tail -n 2 /где/то/там/etc/modprobe.d/alsa-modindex.conf options snd_hda_intel id=PCH index=0 options snd_hda_intel id=HDMI index=2 Но наблюдал и пульсовое ПО, которому становится плохо, если звуковая сидит не в том сокете в котором должна. И это уже косяк ядерного драйвера, который никто уже не будет чинить. Про это весь интернет знает, но всем на этот косяк ядра пофигу. А те кто знает про этот косяк, переиндексируют карты руками через конфиг. Его и заготовки в IceArch кстати нет. И если скажем IceArch перевести на alsa, то звук у меня даже хрен заведётся. ![]() Я приблизительно помню конфиг переиндексации на память, но ломать так мозг мне лень. Приблизительно в ту же тему: Народ говорит про УМВР с пульсой... Ага... У него контролов чуть больше 20-ти. А у меня на чипе AD1988, у которого больше 40-ка контролов, пульсу просто тошнило. И иногда она скрежетала как несмазанная телега. И часто рушилась. Поэтому лет несколько назад я с пульсой окончательно попрощался. Год-полтора подряд пытался проникнуться ею, но из этого у меня ничего не вышло. Конечно, сейчас всё ПО прибито и усиленно прибивается к пульсе. И это может на чём-то аукнуться. Но тут мне приходится выбирать в линукс-системах, между плохо и ещё хуже. Сообщение отредактировал speccyfighter - 30.11.2019, 9:33 |
|
|
![]()
Сообщение
#76
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Юра, xterm есть в ледяном, но он не дружит с кириллицей - поэтому его нет в меню.
На рабочем столе есть кнопка init_key запусти эту программу, обновятся ключи - потом можно ставить все что угодно. |
|
|
![]()
Сообщение
#77
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Цитата Но будем оптимистами smile.gif - у меня всё это было на IceArch-0.988 не так уж и плохо, а ещё хуже. Приглашения логина в лайве IceArch нет, а сразу рутом. Юра, live режим сделан под root - а так и задумано , но на самом деле там есть один бесхомячный пользователь ice. Он нужен для сборки пакетов из aur-а , может быть вполне подойдет тебе для тестов. |
|
|
![]()
Сообщение
#78
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
На рабочем столе есть кнопка init_key запусти эту программу, обновятся ключи - потом можно ставить все что угодно. Не-а ![]() Как понимаю: Пока нормальную библиотеку руками не вопрешь в систему, вообще из сервера ничего получить невозможно, - ни ключей, ни базы, ни пакетов. Подумал может хоть что-то увижу, если пойму, но не судьба: Код root<>archiso:~/# strace -o lib-error.txt pacman -Sy bash: strace: команда не найдена |
|
|
![]()
Сообщение
#79
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Не-а ![]() Как понимаю: Пока нормальную библиотеку руками не вопрешь в систему, вообще из сервера ничего получить невозможно, - ни ключей, ни базы, ни пакетов. Странно, у меня после init_key все работает как положено : https://ibb.co/Xkxqxwt видимо у тебя инициализация ключей прошла с ошибкой. Может быть сервер в этот момент был недоступен . Попробуй перезагрузить систему, сделать еще раз init_key и поставить mousepad для теста. Ключ Y в pacman-е в данном случае тебе не нужен, init_key обновляет базу сам. |
|
|
![]()
Сообщение
#80
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
В секцию выбора устройства вывода, в версию 0.35, нужно добавлять 'exit 1' по else, запрещающее запуск mplayer-vc не в виртуальной консоли tty*
Код # Option / parameter for selecting video output driver # for virtual console VIDEOOUTPUT="" DEVOUT=`tty | cut -f3 -d / | head -c 3` if [ $DEVOUT = "tty" ] then setterm --blank 0 VIDEOOUTPUT="-vo fbdev2" fi Проблема в следующем: Единственное окно, чем и является X-теминал, на рабочем столе icewm может оставаться в бэкграунд и неактивным. Чего теоретически не должно быть. Это значит, что на паузе в 3 секунды, между проигрываниями видеофайлов по маске в бесконечном цикле, когда процесс mplayer завершён и его окно отсутствует, клавиша выхода из проигрывания, которая задана в скрипте запущенном в X-терминале, обрабатываться не будет (поскольку окно неактивно) и выход из бесконечного цикла невозможен. Курсор мыши, не показатель активности окна. Показатель активности окна, это хоткеи: Хоткеями обрабатываются опции меню окна, только активного окна. Этой проблемы нет и не будет в kde, xfce и подобных, и само-собой в tty, когда единственное окно на рабочем столе, всегда активно. И в случае когда активное окно (mplayer) исчезает, бэкграунд неактивное окно (X-теминал) автоматически становится активным. Следующая версия скрипта mplayer-vc (0.36?), будет запускаться только в tty. Будет уметь проигрывать только один файл с выходом из проигрывания или группу видеофайлов по маске в бесконечном цикле с выходом из цикла по хоткею и завершением проигрывания. Сообщение отредактировал speccyfighter - 14.7.2020, 14:43 |
|
|
![]()
Сообщение
#81
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Секция должна выглядеть где-то так:
Код # Option / parameter for selecting video output driver # for virtual console VIDEOOUTPUT="" DEVOUT=`tty | cut -f3 -d / | head -c 3` if [ $DEVOUT = "tty" ] then setterm --blank 0 VIDEOOUTPUT="-vo fbdev2" else clear echo "This is not a tty." echo "Please run mplayer-vc in the virtual console." exit 1 fi Этот блок кода запрещает запуск mplayer-vc в X-терминалах и разрешает запуск только в tty. Но одновременно это решает проблему хоткеев, когда единственное на рабочем столе icewm, окно X-терминала может оставаться в неактивным в бэкграунд, с отказом работы хоткеев. |
|
|
![]()
Сообщение
#82
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Полный листинг mplayer-vc v0.36.1
Код #!/bin/bash # mplayer-vc # # Script for full-screen viewing of local video in mplayer via console. # This script automatically adjusts the video output to full screen # for a monitor with any resolution and does not require the user # to enter additional options. # Copyright 2018 Yury Pakin <zxwarior<>yandex.ru> # LICENSE: # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # parse options opt=1 helptext="\ Script for full-screen viewing of local video in mplayer through console. This script automatically adjusts the video output to full screen for a monitor with any resolution and does not require additional options. To play video in the virtual console, the user must be in the video group. On alsa systems, if the sound card is not in socket 0, reindex the sound cards. Usage: mplayer-vc /path/to/videofile Playing and exit mplayer-vc ../path/to/*.mp4 Endless cycle mplayer-vc ./path/to/* Endless cycle Keys: 9 / 0 Decrease/increase volume m Mute sound p / SPACE Pause (pressing again unpauses) f Toggle fullscreen (X-only) LEFT and RIGHT Backward/forward 10 seconds UP and DOWN Forward/backward 1 minute PGUP and PGDWN Forward/backward 10 minutes 1 and 2 Adjust contrast 3 and 4 Adjust brightness Playing a single video file: q / ESC / Ctrl+c Stop playing and quit Playing a loop of video files: q / ESC Go to the next video Double-press the q key Stop and exit video file loop playback Double-press Ctrl+C Stop and exit video file loop playback -h --help print this help text " [ $# -ne 0 ] || set -- -h while test "$opt" = "1"; do case "$1" in # fbgs options -h | --help) printf "$helptext" exit 1 ;; # others options -*) echo -e "\nunknown option: $1\nUse -h or --help.\n" exit 1 ;; *) opt=0 ;; esac done VIDEOFILE= # Framebuffer resolution and permissible video file resolution resolution () { # Resolution of the original video file in X coordinate VIDEOWIDTH=`echo "$MEDIAINFO" | grep 'VIDEO_WIDTH' | awk -F '=' '{print $2}'` # Resolution of the original video file in Y coordinate VIDEOHEIGHT=`echo "$MEDIAINFO" | grep 'VIDEO_HEIGHT' | awk -F '=' '{print $2}'` # Video image proportions in decimal VIDEOASPECT=`echo "$VIDEOWIDTH/$VIDEOHEIGHT" | bc -l` # Decimal proportions of framebuffer FBASPECT=`fbset --test | grep mode | awk -F '"' '{print $2}' | sed 's/x/\//' | bc -l |sed 's/^\(......\).*/\1/'` # Framebuffer resolution in Y coordinate in pixels FBHEIGHT=`fbset --test | grep mode | awk -F '"' '{print $2}' | awk -F 'x' '{printf $2}'` # If the framebuffer aspect ratio is greater than the aspect of # the video file, then calculate the scaling factor to # framebuffer Y. Then, calculate by the coefficient the maximum # allowable size in pixels when scaling the video file in X, so # that when scaling in -xy, the video file does not go beyond # the screen in the Y coordinate. if [[ $FBASPECT > $VIDEOASPECT ]] then VSIZEXXX=`echo "$FBHEIGHT/$VIDEOHEIGHT" | bc -l` XVSIZE=`echo "$VIDEOWIDTH*$VSIZEXXX" | bc -l` # otherwise compute X framebuffer else XVSIZE=`fbset --test|grep geometry|awk '{print $2}'` fi } # Option / parameter for selecting video output driver # for virtual console VIDEOOUTPUT="" DEVOUT=`tty | cut -f3 -d / | head -c 3` if [ $DEVOUT = "tty" ] then setterm --blank 0 VIDEOOUTPUT="-vo fbdev2" else clear echo "This is not a tty." echo "Please run mplayer-vc in the virtual console." exit 1 fi # Option/parameter for selecting audio output driver # pulse or alsa AUDIOOUTPUT="" PULSEENABLE=`ls -1 /usr/bin/ | grep ^pulseaudio | wc -l` if [[ $PULSEENABLE != 0 ]] then AUDIOOUTPUT="-ao pulse" else AUDIOOUTPUT="-ao alsa" fi ## ## Play section ## # One or several files selector # # If there is one argument, then if [[ $# == 1 ]] then MEDIAINFO= MEDIAYES= # if the file is not a directory, then VIDEOFILE="$@" TYPEFILE=`file -b "$VIDEOFILE"` if [ "$TYPEFILE" != "directory" ] then MEDIAINFO=`mplayer -identify -vo null -ao null -frames 0 "$VIDEOFILE" 2>/dev/null | sed -n 's/^ID_//p' | sed -e '$ d'` MEDIAYES=`echo "$MEDIAINFO" | grep "CLIP_INFO_" | wc -c` if [[ $MEDIAYES > 0 ]] then resolution # Play with variable substitution above clear; mplayer -nocache -softvol -noautosub -nosub $VIDEOOUTPUT -xy $XVSIZE -fs -zoom -framedrop $AUDIOOUTPUT "$VIDEOFILE" &>/dev/null; clear exit 0 else echo -e "\nThis is not a video file\n" exit 0 fi elif [ "$TYPEFILE" == "directory" ] then echo -e "\nThis is a directory\n" exit 0 fi else # If there are a lot of files, then if [[ $# > 1 ]] then MEDIAINFO= MEDIAYES= # all of them in an infinite loop while true do # Each path is a word ($@), for the path ../*: "directory mediafile directory" # If the file is Media, output to stdout (play) # Directories and non-media skip # Parse script parameter: ../* or ../file.mp4 for VIDEOFILE in "$@" do # Skip the directory TYPEFILE=`file -b "$VIDEOFILE"` if [ "$TYPEFILE" != "directory" ] then MEDIAINFO=`mplayer -identify -vo null -ao null -frames 0 "$VIDEOFILE" 2>/dev/null | sed -n 's/^ID_//p' | sed -e '$ d'` MEDIAYES=`echo "$MEDIAINFO" | grep "^CLIP_INFO_" | wc -c` if [[ $MEDIAYES > 0 ]] then resolution # Scale proportionally by factor to the X coordinate # of the framebuffer, in the XVSIZE variable. clear; mplayer -nocache -softvol -noautosub -nosub $VIDEOOUTPUT -xy $XVSIZE -fs -zoom -framedrop $AUDIOOUTPUT "$VIDEOFILE" &>/dev/null; clear # Poll 3 seconds of pressing the 'q' key to exit for (( i=1; i <= 3; i++ )) do # Clear variable for keyboard input B="" # Read one character from standard input read -s -t 1 -n 1 B # Key Press Poll case "$B" in [qQ] ) B="q";; esac # Exit if 'q' key is pressed if [ "$B" == "q" ] then clear exit 0 fi done fi fi done done fi fi Требуется тестирование. Пользователь должен быть в группе видео. Права должны быть: Код $ ls -l /dev/fb0 crw-rw---- 1 user root 29, 0 июл 22 00:38 /dev/fb0 А в альтах, строка 49 Код # grep ' <fb> ' /etc/security/console.perms.d/50-default.perms.probe <console> 0600 <fb> 0600 root должна выглядеть как Код # grep ' <fb> ' /etc/security/console.perms.d/50-default.perms.probe <console> 0660 <fb> 0660 root.video Правка конфига в таком виде, исключает монопольній захват фреймбуфера и разрешит пользователю группы video использовать mplayer в tty. В арче такая правка не требуется и в нём права на фрейбуфер верные. В альтах реализовано на уровне кода, но не реализовано на уровне конфига, с отказом исправления, молчанием в багрепорте. Смысл скрипта версии 0.36 (базируется на 0.35): - Проигрывание одного видеофайла с завершением проигрывания. - Проигрывание группы видеофайлов по маске в бесконечном цикле. Сообщение отредактировал speccyfighter - 23.7.2020, 21:52 |
|
|
![]()
Сообщение
#83
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Проверил в альте версию 0.36.
При воспроизведении, единственная замеченная "сопля", это по прерывании бесконечного цикла, нужно очищать экран. Иначе например help наложится на последнее изображение, на котором прерван бесконечный цикл. Или по выходу из бесконечного цикла, выполнить clear. В остальном нормально. Ну может быть ещё help слегка подчистить от намёков на X-сы, в которых mplayer-vc 0.36+ запускаться не будет. В ледяном не проверял, но заработает без эквилибристики как в альтовом pam0_console. Упрощение проигрывания видео в tty сделано по-максимуму. И проще, на мой взгляд, уже просто некуда. Главное, что в виртуальной консоли, мозг не будет ломать километрами опций и параметров. И при этом, не будет требовать феноменальных мощностей железа и 4D. Видео заработает на всём, что хоть как-то можно сегодня назвать компьютером. Сообщение отредактировал speccyfighter - 23.7.2020, 21:29 |
|
|
![]()
Сообщение
#84
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Проверил в альте версию 0.36. - При воспроизведении, единственная замеченная "сопля", это по прерывании бесконечного цикла, нужно очищать экран. Иначе например help наложится на последнее изображение, на котором прерван бесконечный цикл. Или по выходу из бесконечного цикла, выполнить clear. - В остальном нормально. Ну может быть ещё help слегка подчистить от намёков на X-сы, в которых mplayer-vc 0.36+ запускаться не будет. Исправлено в последнем полном листинге. Версия повышена до 0.36.1 |
|
|
![]()
Сообщение
#85
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Исправлено в последнем полном листинге. Версия повышена до 0.36.1 Юра , в Aur-е лежит твой mplayer-vc с версией 0.4.0 : https://aur.archlinux.org/packages/mplayer-vc/ Может тогда еще повысишь версию и пушнуть его в aur ? В ледяной то я его могу и так подсунуть тут проблем с версиями нет. |
|
|
![]()
Сообщение
#86
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Юра , в Aur-е лежит твой mplayer-vc с версией 0.4.0 : https://aur.archlinux.org/packages/mplayer-vc/ Может тогда еще повысишь версию и пушнуть его в aur ? Костя, зачем повышать? ![]() В аур ноль-четыре-ноль. А это же ноль-тридцатьшесть-один, а не ноль-сорок-ноль. До ноль-сорок-ноль ей ещё далеко. В 0.36.1 реализовано: - Или один файл с окончанием проигрывания - Или любые несколько файлов в бесконечном цикле с выходом из цикла по двойному q. |
|
|
![]()
Сообщение
#87
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
|
|
|
![]()
Сообщение
#88
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Собрал пакет , погонял на рабочей системе в чистой консоли на тестовых видео - все отлично работает.
Вечером пушну в Aur. |
|
|
![]()
Сообщение
#89
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
К сожалению aur немного прилег :
Цитата 503 - Service Unavailable Don't panic! This site is down due to maintenance. We will be back soon. Бывает с ним такое иногда , как подымется - пушну. |
|
|
![]()
Сообщение
#90
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 4384 Регистрация: 17.9.2009 Вставить ник Цитата Пользователь №: 1617 Страна: Россия Город: Санкт-Петербург Пол: Муж. Репутация: ![]() ![]() ![]() |
Залил в Aur : https://aur.archlinux.org/packages/mplayer-vc/
|
|
|
![]()
Сообщение
#91
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 157 Регистрация: 6.3.2019 Вставить ник Цитата Пользователь №: 3002 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Так, к слову, чтоб не было прецедентов по окончательному переводу MPlayer~а в статус прикопаных стюардесс
![]() "Страшнючее" - т.к. "в оригинале" - порядок - нормальное изображение и звук (но не всё управление работает[/и отображается]); при консольных съемках (ffmpeg~ом) - на мониторе небольшие строчные баги; ну а записаный результат - конечно получается "действительно совсем уж страшнючий" ![]() |
|
|
![]()
Сообщение
#92
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Так, к слову, чтоб не было прецедентов по окончательному переводу MPlayer~а в статус прикопаных стюардесс ![]() "Страшнючее" - т.к. "в оригинале" - порядок - нормальное изображение и звук (но не всё управление работает[/и отображается]); при консольных съемках (ffmpeg~ом) - на мониторе небольшие строчные баги; ну а записаный результат - конечно получается "действительно совсем уж страшнючий" ![]() ![]() - Во-первых у него 1.000 FPS, но никак не 24. - А во-вторых, кто-то догадался видео в формате Advanced Video Codec затолкать в Матроска контейнер. |
|
|
![]()
Сообщение
#93
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 157 Регистрация: 6.3.2019 Вставить ник Цитата Пользователь №: 3002 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
![]() - Во-первых у него 1.000 FPS, но никак не 24. - А во-вторых, кто-то догадался видео в формате Advanced Video Codec затолкать в Матроска контейнер. - спасибо - попробую осмыслить (это были консольные съемочные пробы, с ffmpeg с того момента пока дальше не разбирался - не до того пока было... ) -------- ps то видео вроде еще пережимал (для уменьшения размера, но не уверен) |
|
|
![]()
Сообщение
#94
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 157 Регистрация: 6.3.2019 Вставить ник Цитата Пользователь №: 3002 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Юрий, тут тогда вопрос по "смежной теме":
(грешен, - пока с азбукой не разобрался) - ? в чем может быть причина того, что если запустить просмотр видео в tty какой-либо "запускалкой( links, ф/м, и т.п.)" !в screen( про другие мультиплексоры не скажу), то применительно к mpv - грузит проц 100% если не более? (про MPlayer не помню) |
|
|
![]()
Сообщение
#95
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Про screen я не в курсе. О нём у меня представления достаточно туманные. Мне сначала нужно выстроить ясную картину использования, во всех отношениях, а потом использую. А это процесс не быстрый. Но предсказуемый.
С mpv в tty надо быть осторожным. mpv минимум на порядок лучше воспроизводит субтитры матроски в tty, чем mplayer. Но в отличие от mplayer, mpv не прощает ошибок: Если `mpv --vo drm file` запустить в tty, то при переключении в виртуальную консоль на которой подняты X-сы, рухнет и X-сессия и X-сервер. `mplayer -vo fbdev2` такую ошибку прощает. Но в mplayer туго с воспроизведением субтитров матроски в tty. И как победить это, не знаю. |
|
|
![]()
Сообщение
#96
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 157 Регистрация: 6.3.2019 Вставить ник Цитата Пользователь №: 3002 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
падение Иксов от `mpv --vo=drm file` - сейчас смотрел (раньше не замечал)
--------- - сейчас вспомнил - MPlayer из screen~a вроде вообще запустить нельзя... (у меня по работе 'screen' представления пока нет почти вовсе; как-то dvtm недого пользовал.) --------- Тематику консольных видео в последнее время подзабросил(/"приморозил"). [ а с mpv-из-под-screen - там нескучно - кроме мощной загрузки процессора, при подключенном к ноуту доп.внешнем мониторе, видео воспроизводится и во всех остальных tty на втором мониторе. Но это уже mpv-шная тема... ( а при запуске не из screen, а просто-tty - если не заходить при просмотре в запущенные Иксы, то на Арче они у меня не вылетали, а перекидывались в tty7. Все равно сдается - тут без азбуки никак ![]() Сообщение отредактировал knn - 26.7.2020, 4:43 |
|
|
![]()
Сообщение
#97
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 157 Регистрация: 6.3.2019 Вставить ник Цитата Пользователь №: 3002 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
- получается относительно давно с iptv-mplayer-console не ковырялся...
- половину из нарытого пока порастерял ( и в частности "трюк" из - de-catenator_part3_iptv-Mplayer_IceArch-0.994.mkv со стр. сходу не повторяется - нужно смотреть причины. Ну там привязка к ptv-серверу...). - из хорошего - имеется "набор подходящих каналов(с 70%-ой работоспособностью)" - по наличию времени буду ковыряться с параметрами запуска и просмотра. --------------- ps iptv-mplayer-console при двух мониторах у меня показывает на обоих и во всех tty( htop не видно) pps с запущенным `mplayer -vo fbdev2` на Арче, Иксы не падают(но вроде перемещаются в tty7 [pps - оттуда. htop - выcокий - нужно пробовать различн. команды]) Сообщение отредактировал knn - 26.7.2020, 7:44 |
|
|
![]()
Сообщение
#98
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
`mpv --vo=drm file` ( а при запуске не из screen, а просто-tty - если не заходить при просмотре в запущенные Иксы, то на Арче они у меня не вылетали, а перекидывались в tty7. У меня на интел графике при переключении в tty7 на проигрывании через mpv, X-сервер разгружает модуль modesetting, который и есть драйвер modesetting_drv под графику Intel KMS (интел без kms отучили и без kms он не умеет). И соотвественно рушится X-сервер, с необходимостью рестарта сервиса dm. mpv на интел графике работает в tty: Работает? Не трогай и не дыши. Для стабильной работы, ему требуется принудительный runlevel 3. Все равно сдается - тут без азбуки никак ![]() Никак. |
|
|
![]()
Сообщение
#99
|
|
Крупный специалист ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 461 Регистрация: 1.5.2013 Вставить ник Цитата Пользователь №: 2379 Страна: Беларусь Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
pps с запущенным `mplayer -vo fbdev2` на Арче, Иксы не падают(но вроде перемещаются в tty7 [pps - оттуда. htop - выcокий - нужно пробовать различн. команды]) У меня на Core i3-5005U (слабый 15-тиваттный процессор для автономных систем) при воспроизведении в tty в полный экран 1366x768, через `mplayer -vo fbdev2` видео в mkv HD 720p: https://mango.blender.org/download/ не сильно загружает процессор (см. idle - свободные ресурсы процессора в all среднее) в системе на p9-xfce-sysv: Код $ sleep 10; sar -P ALL 1 30 Linux 5.4.51-std-def-alt1 (core-i3-5005u) 26.07.2020 _x86_64_ (4 CPU) ... Среднее: CPU %user %nice %system %iowait %steal %idle Среднее: all 13,49 0,00 0,45 0,03 0,00 86,03 Среднее: 0 12,59 0,00 0,43 0,13 0,00 86,84 Среднее: 1 5,81 0,00 0,43 0,00 0,00 93,76 Среднее: 2 2,37 0,00 0,50 0,00 0,00 97,13 Среднее: 3 33,20 0,00 0,43 0,00 0,00 66,37 Вывод в сумме с браузером palemoon. Если отбросить ещё процентов 5 браузера, то загрузка процессора по видео, процентов 10, не больше. При этом это интел графика, с выделением видеопамяти из общего массива памяти. Такая видеографика, рядом с дискретной, и рядом не лежала. Здесь в ноутбуке, всё расчитано не на производительность, а на энергосбережение. Включая и перевод с intel_pstate на acpi_cpufreq. Сообщение отредактировал speccyfighter - 26.7.2020, 13:53 |
|
|
![]()
Сообщение
#100
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 157 Регистрация: 6.3.2019 Вставить ник Цитата Пользователь №: 3002 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
- кроме азбуки похоже пригодятся и инструменты ( раньше намеревался - аналог mpv-k-prf.sh ( с выбором профилей). Правда и в mpv-параметрах пока не разобрался. Но сравнение тоже "метод познания", думаю многое перенесется по-аналогии [различия тоже неизбежны])
---------- Pentium T4500 Device-1: AMD RV710/M92 [Mobility Radeon HD 4530/4570/545v] (с гибридной графикой осбо обращаться пока не научился) ---------- после прекращения показа iptv-mplayer в консоли с параллельно запущенными Иксами - Xorg "остаточно" грузил вроде на 46% |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.9.2025, 23:03 |