IPB

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V  < 1 2 3 4 >  
Ответить в эту темуОткрыть новую тему
> mplayer в консоли, упрощение просмотра видеофайлов в консоли
Поделиться
speccyfighter
сообщение 27.11.2019, 9:40
Сообщение #61


Крупный специалист
*****

Группа: Пользователь
Сообщений: 461
Регистрация: 1.5.2013
Вставить ник
Цитата
Пользователь №: 2379
Страна: Беларусь
Город: Не указан
Пол: Муж.



Репутация: 1


Похоже есть способ получше чем mediainfo:
Идентификация видеофайла(ов)

Видеофайлы
Код
$ mplayer -identify -vo null -ao null -frames 0 /home/tos-1720x720-cfg01.mkv | sed -n 's/^ID_//p'
VIDEO_ID=0
AUDIO_ID=0
AID_0_LANG=eng
SUBTITLE_ID=0
SID_0_LANG=hrv
SUBTITLE_ID=1
SID_1_LANG=cze
SUBTITLE_ID=2
SID_2_LANG=dan
SUBTITLE_ID=3
SID_3_LANG=ger
SUBTITLE_ID=4
SID_4_LANG=eng
SUBTITLE_ID=5
SID_5_LANG=spa
SUBTITLE_ID=6
SID_6_LANG=fre
SUBTITLE_ID=7
SID_7_LANG=gre
SUBTITLE_ID=8
SID_8_LANG=heb
SUBTITLE_ID=9
SID_9_LANG=hun
SUBTITLE_ID=10
SID_10_LANG=ind
SUBTITLE_ID=11
SID_11_LANG=ita
SUBTITLE_ID=12
SID_12_LANG=jpn
SUBTITLE_ID=13
SID_13_LANG=dut
SUBTITLE_ID=14
SID_14_LANG=nor
SUBTITLE_ID=15
SID_15_LANG=per
SUBTITLE_ID=16
SID_16_LANG=pol
SUBTITLE_ID=17
SID_17_LANG=por
SUBTITLE_ID=18
SID_18_LANG=rus
SUBTITLE_ID=19
SID_19_LANG=chi
VIDEO_CODEC=ffhevc
CLIP_INFO_NAME0=encoder
CLIP_INFO_VALUE0=libebml v1.3.0 + libmatroska v1.4.1
CLIP_INFO_NAME1=creation_time
CLIP_INFO_VALUE1=2014-03-18T13:19:29.000000Z
CLIP_INFO_N=2
FILENAME=/home/tos-1720x720-cfg01.mkv
DEMUXER=lavfpref
VIDEO_FORMAT=HEVC
VIDEO_BITRATE=0
VIDEO_WIDTH=1720
VIDEO_HEIGHT=720
VIDEO_FPS=24.000
VIDEO_ASPECT=0.0000
AUDIO_FORMAT=8192
AUDIO_BITRATE=448000
AUDIO_RATE=48000
AUDIO_NCH=6
START_TIME=0.00
LENGTH=734.17
SEEKABLE=1
CHAPTERS=0
[ac3 @ 0x7ff28f7c9260]Channel layout '5.1(side)' with 6 channels does not match specified number of channels 2: ignoring specified channel layout
AUDIO_BITRATE=448000
AUDIO_RATE=48000
AUDIO_NCH=2
AUDIO_CODEC=ffac3
EXIT=EOF

Код
$ mplayer -identify -vo null -ao null -frames 0 /home/Trace\ Adkins\ -\ Just\ Fishin\'.mp4 | sed -n 's/^ID_//p'
VIDEO_ID=0
AUDIO_ID=0
VIDEO_CODEC=ffh264
CLIP_INFO_NAME0=major_brand
CLIP_INFO_VALUE0=mp42
CLIP_INFO_NAME1=minor_version
CLIP_INFO_VALUE1=0
CLIP_INFO_NAME2=compatible_brands
CLIP_INFO_VALUE2=isommp42
CLIP_INFO_NAME3=creation_time
CLIP_INFO_VALUE3=2014-03-07T11:47:19.000000Z
CLIP_INFO_N=4
FILENAME=/home/Trace Adkins - Just Fishin'.mp4
DEMUXER=lavfpref
VIDEO_FORMAT=H264
VIDEO_BITRATE=581008
VIDEO_WIDTH=640
VIDEO_HEIGHT=360
VIDEO_FPS=24.000
VIDEO_ASPECT=0.0000
AUDIO_FORMAT=MP4A
AUDIO_BITRATE=95992
AUDIO_RATE=44100
AUDIO_NCH=2
START_TIME=0.00
LENGTH=210.05
SEEKABLE=1
CHAPTERS=0
AUDIO_BITRATE=95992
AUDIO_RATE=44100
AUDIO_NCH=2
AUDIO_CODEC=ffaac
EXIT=EOF

Код
$ mplayer -identify -vo null -ao null -frames 0 ./avi4test.avi | sed -n 's/^ID_//p'
VIDEO_ID=0
AUDIO_ID=1
VIDEO_CODEC=ffh264
CLIP_INFO_NAME0=Software
CLIP_INFO_VALUE0=Lavf56.25.101
CLIP_INFO_N=1
FILENAME=./avi4test.avi
DEMUXER=avi
VIDEO_FORMAT=H264
VIDEO_BITRATE=293032
VIDEO_WIDTH=640
VIDEO_HEIGHT=360
VIDEO_FPS=59.940
VIDEO_ASPECT=0.0000
AUDIO_FORMAT=255
AUDIO_BITRATE=95992
AUDIO_RATE=0
AUDIO_NCH=0
START_TIME=0.00
LENGTH=790.72
SEEKABLE=1
CHAPTERS=0
AUDIO_BITRATE=95992
AUDIO_RATE=44100
AUDIO_NCH=2
AUDIO_CODEC=ffaac
EXIT=EOF


ASCII файл
Код
$ mplayer -identify -vo null -ao null -frames 0 /home/abcde.txt | sed -n 's/^ID_//p'
VIDEO_ID=0
VIDEO_CODEC=ffansi
SUB: Could not determine file format
Cannot load subtitles '/home/abcde.txt'.
FILENAME=/home/abcde.txt
DEMUXER=lavf
VIDEO_FORMAT=TXT4
VIDEO_BITRATE=0
VIDEO_WIDTH=640
VIDEO_HEIGHT=400
VIDEO_FPS=25.000
VIDEO_ASPECT=0.0000
START_TIME=0.00
LENGTH=0.04
SEEKABLE=1
CHAPTERS=0
EXIT=EOF


Каталог
Код
$ mplayer -identify -vo null -ao null -frames 0 /home/tester | sed -n 's/^ID_//p'
File not found: '/home/tester'
Failed to open /home/tester.
EXIT=EOF


Сходство/различие, в наличии/отсутствии секции CLIP_INFO_*. У видеофайлов она есть. А парсить X и Y файла на три порядка проще чем в выбросе уродского mediainfo.
В этих же выбросах, сухо, кратко, но по-сути и всё для вас. Тьфу, - для парсинга.

Выдернуто тут:
Код
/usr/lib/mc/ext.d/video.sh

#!/bin/sh

# $1 - action
# $2 - type of file

action=$1
filetype=$2

[ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open"

do_view_action() {
    filetype=$1

    case "${filetype}" in
    *)
        if mplayer >/dev/null 2>&1; then
            mplayer -identify -vo null -ao null -frames 0 "${MC_EXT_FILENAME}" 2>&1 | \
                sed -n 's/^ID_//p'
        elif which mpv_identify.sh >/dev/null 2>&1; then
            mpv_identify.sh "${MC_EXT_FILENAME}"
        else
            echo "Please install either mplayer or mpv to get information for this file"
        fi
    ;;
    esac
}


Ну и следом с применением команды
Код
$  mplayer -identify -vo null -ao null -frames 0 /path/to/videofile 2>&1 | \
sed -n 's/^ID_//p'

Нет ничего проще, - перенаправляй в переменную и дёргай из неё.
Формат выбросов прост и предсказуем как две копейки. И видно что люди делали для людей.

И так же отсечь каталоги:
Код
$ man test | sed -n '3,12p; 82,84p'
NAME
       test - check file types and compare values

SYNOPSIS
       test EXPRESSION
       test
       [ EXPRESSION ]
       [ ]
       [ OPTION

       -d FILE
              FILE exists and is a directory


Проверка на каталог
Код
$ cat test-dirs.sh
#!/bin/bash

# Checking for a directory
if test -d "$@"; then
    echo -e "\nThis is the directory\n"
fi

Код
$ sh ./test-dirs.sh ../tester

This is the directory


Соответственно проверка на файл
Код
[ ~]$ cat 123.sh
#!/bin/bash

# Checking for a directory
if test -d "$@"
  then
    echo >/dev/null
  else
    echo -e "\nfile\n"
fi

Код
[ ~]$ sh 123.sh /home/tester/
[ ~]$

Код
[ ~]$ sh 123.sh /home/abcde.txt

file



Сообщение отредактировал speccyfighter - 27.11.2019, 11:19
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
speccyfighter
сообщение 28.11.2019, 10:10
Сообщение #62


Крупный специалист
*****

Группа: Пользователь
Сообщений: 461
Регистрация: 1.5.2013
Вставить ник
Цитата
Пользователь №: 2379
Страна: Беларусь
Город: Не указан
Пол: Муж.



Репутация: 1


Обработчик нажатия клавиши 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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
speccyfighter
сообщение 28.11.2019, 13:48
Сообщение #63


Крупный специалист
*****

Группа: Пользователь
Сообщений: 461
Регистрация: 1.5.2013
Вставить ник
Цитата
Пользователь №: 2379
Страна: Беларусь
Город: Не указан
Пол: Муж.



Репутация: 1


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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
speccyfighter
сообщение 28.11.2019, 20:22
Сообщение #64


Крупный специалист
*****

Группа: Пользователь
Сообщений: 461
Регистрация: 1.5.2013
Вставить ник
Цитата
Пользователь №: 2379
Страна: Беларусь
Город: Не указан
Пол: Муж.



Репутация: 1


Ещё один недостаток mplayer-vc 0.4.0

- Субтитры выключены.
Потому как отображение шрифта во фреймбуфере, при воспроизведении матроски, не подходит даже под определение говно. Ибо слишком похвально.

Выглятит это так:
Текст субтитров, как черезстрочная развёртка с вырезкой пикселов по вертикали. Затем представьте, что вы взяли эту же надпись с прозрачным фоном, и сдвинув по X пикселов на 20, наложили её на неё же. Это говнище, даже показывать никому нельзя. А скриншот в tty не снять, - это вообще не работает. Никак. Ни через граббер, ни через дамп-конвертация. Только через цифровую зеркалку, штук за пять зелёных. И как это исправить, не знаю.
Поэтому субтитры выключены нахрен, чтобы не показывать это грандиозное позорище.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 28.11.2019, 21:32
Сообщение #65


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Отправил в Aur : https://aur.archlinux.org/packages/mplayer-vc/
поставил оттуда через
yaourt -S mplayer-vc
проверил, работает.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
speccyfighter
сообщение 28.11.2019, 21:50
Сообщение #66


Крупный специалист
*****

Группа: Пользователь
Сообщений: 461
Регистрация: 1.5.2013
Вставить ник
Цитата
Пользователь №: 2379
Страна: Беларусь
Город: Не указан
Пол: Муж.



Репутация: 1


Цитата(kostyalamer @ 28.11.2019, 19:32) *
Отправил в Aur : https://aur.archlinux.org/packages/mplayer-vc/
поставил оттуда через
yaourt -S mplayer-vc
проверил, работает.


Отлично. Спасибо за дополнительный тест.
Хотел полюбопытствовать, а как это делает mpv и руками покрутить. Ага, щас. У альтов в p9 рассинхронизированы версии mpv и библиотек. И mpv в p9 на текущий момент в альтах никак не работает.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 28.11.2019, 22:04
Сообщение #67


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(speccyfighter @ 28.11.2019, 21:50) *
Отлично. Спасибо за дополнительный тест.
Хотел полюбопытствовать, а как это делает mpv и руками покрутить. Ага, щас. У альтов в p9 рассинхронизированы версии mpv и библиотек. И mpv в p9 на текущий момент в альтах никак не работает.

В текущем ледяном knn прикрутил к links - у твой mplayer-vc и mpv на выбор. Единственное , не помню это в 0.988 или в том что у меня собирается на компе.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
speccyfighter
сообщение 28.11.2019, 23:30
Сообщение #68


Крупный специалист
*****

Группа: Пользователь
Сообщений: 461
Регистрация: 1.5.2013
Вставить ник
Цитата
Пользователь №: 2379
Страна: Беларусь
Город: Не указан
Пол: Муж.



Репутация: 1


Цитата(kostyalamer @ 28.11.2019, 20:04) *
В текущем ледяном 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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
knn
сообщение 29.11.2019, 8:16
Сообщение #69


Специалист
****

Группа: Активный Пользователь
Сообщений: 145
Регистрация: 6.3.2019
Вставить ник
Цитата
Пользователь №: 3002
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 2


- у меня нет звука (и его регулировки) ни в Х, ни в Консоли.
[- в простом 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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
knn
сообщение 29.11.2019, 8:33
Сообщение #70


Специалист
****

Группа: Активный Пользователь
Сообщений: 145
Регистрация: 6.3.2019
Вставить ник
Цитата
Пользователь №: 3002
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 2


как снять выхлоп( "беззвучный") - не знаю
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 29.11.2019, 8:35
Сообщение #71


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


У меня в консоли все нормально, звук есть , а в X-сах он действительно пропал ( вчера не заметил ) дело в том что проверяю на своих старых домашних видео снятых телефоном, а там звук появлеется эпизодически. Юра, как поправишь - перезалью.
PS пишу из консоли из lweb-а , очень удобная вещь !
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
knn
сообщение 29.11.2019, 8:39
Сообщение #72


Специалист
****

Группа: Активный Пользователь
Сообщений: 145
Регистрация: 6.3.2019
Вставить ник
Цитата
Пользователь №: 3002
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 2


Цитата(kostyalamer @ 29.11.2019, 8:35) *
PS пишу из консоли из lweb-а

- у меня иногда там бывает, что после залогинивания нужно обновить страницу.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
speccyfighter
сообщение 29.11.2019, 19:24
Сообщение #73


Крупный специалист
*****

Группа: Пользователь
Сообщений: 461
Регистрация: 1.5.2013
Вставить ник
Цитата
Пользователь №: 2379
Страна: Беларусь
Город: Не указан
Пол: Муж.



Репутация: 1


Цитата(kostyalamer @ 29.11.2019, 6:35) *
У меня в консоли все нормально, звук есть , а в X-сах он действительно пропал ( вчера не заметил ) дело в том что проверяю на своих старых домашних видео снятых телефоном, а там звук появлеется эпизодически.

Брось мне в приват или куда-нибудь такое видео на котором звук пропал, для теста.
И сообщи где пропадает, под непривилегированным пользователем? И в каких он состоит группах.



Сообщение отредактировал speccyfighter - 29.11.2019, 19:28
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 29.11.2019, 19:46
Сообщение #74


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(speccyfighter @ 29.11.2019, 19:24) *
Брось мне в приват или куда-нибудь такое видео на котором звук пропал, для теста.
И сообщи где пропадает, под непривилегированным пользователем? И в каких он состоит группах.

Скинул , да в X-сах под обычным пользователем.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
speccyfighter
сообщение 30.11.2019, 8:14
Сообщение #75


Крупный специалист
*****

Группа: Пользователь
Сообщений: 461
Регистрация: 1.5.2013
Вставить ник
Цитата
Пользователь №: 2379
Страна: Беларусь
Город: Не указан
Пол: Муж.



Репутация: 1


В лайве IceArch-0.988 у меня всё намного хуже чем у вас smile.gif

В этом скрипте
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 и с библиотекой и с обновлением баз было хорошо.

Цитата(kostyalamer @ 29.11.2019, 6:35) *
У меня в консоли все нормально, звук есть , а в X-сах он действительно пропал ( вчера не заметил )

Но будем оптимистами smile.gif - у меня всё это было на IceArch-0.988 не так уж и плохо, а ещё хуже.
Приглашения логина в лайве 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

Цитата(kostyalamer @ 29.11.2019, 6:35) *
У меня в консоли все нормально, звук есть , а в X-сах он действительно пропал

alsa так не умеет smile.gif
Она через 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, то звук у меня даже хрен заведётся. smile.gif
Я приблизительно помню конфиг переиндексации на память, но ломать так мозг мне лень.

Приблизительно в ту же тему:
Народ говорит про УМВР с пульсой...
Ага... У него контролов чуть больше 20-ти. А у меня на чипе AD1988, у которого больше 40-ка контролов, пульсу просто тошнило. И иногда она скрежетала как несмазанная телега. И часто рушилась. Поэтому лет несколько назад я с пульсой окончательно попрощался. Год-полтора подряд пытался проникнуться ею, но из этого у меня ничего не вышло. Конечно, сейчас всё ПО прибито и усиленно прибивается к пульсе. И это может на чём-то аукнуться. Но тут мне приходится выбирать в линукс-системах, между плохо и ещё хуже.


Сообщение отредактировал speccyfighter - 30.11.2019, 9:33
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 30.11.2019, 8:47
Сообщение #76


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Юра, xterm есть в ледяном, но он не дружит с кириллицей - поэтому его нет в меню.
На рабочем столе есть кнопка init_key запусти эту программу, обновятся ключи - потом можно ставить все что угодно.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 30.11.2019, 9:26
Сообщение #77


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата
Но будем оптимистами smile.gif - у меня всё это было на IceArch-0.988 не так уж и плохо, а ещё хуже.
Приглашения логина в лайве IceArch нет, а сразу рутом.

Юра, live режим сделан под root - а так и задумано , но на самом деле там есть один бесхомячный пользователь ice.
Он нужен для сборки пакетов из aur-а , может быть вполне подойдет тебе для тестов.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
speccyfighter
сообщение 30.11.2019, 9:47
Сообщение #78


Крупный специалист
*****

Группа: Пользователь
Сообщений: 461
Регистрация: 1.5.2013
Вставить ник
Цитата
Пользователь №: 2379
Страна: Беларусь
Город: Не указан
Пол: Муж.



Репутация: 1


Цитата(kostyalamer @ 30.11.2019, 6:47) *
На рабочем столе есть кнопка init_key запусти эту программу, обновятся ключи - потом можно ставить все что угодно.

Не-а smile.gif Он валит бесконечные не удалось получить.
Как понимаю:
Пока нормальную библиотеку руками не вопрешь в систему, вообще из сервера ничего получить невозможно, - ни ключей, ни базы, ни пакетов.
Подумал может хоть что-то увижу, если пойму, но не судьба:
Код
root<>archiso:~/# strace -o lib-error.txt pacman -Sy
bash: strace: команда не найдена

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 30.11.2019, 10:38
Сообщение #79


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(speccyfighter @ 30.11.2019, 9:47) *
Не-а smile.gif Он валит бесконечные не удалось получить.
Как понимаю:
Пока нормальную библиотеку руками не вопрешь в систему, вообще из сервера ничего получить невозможно, - ни ключей, ни базы, ни пакетов.

Странно, у меня после init_key все работает как положено :
https://ibb.co/Xkxqxwt
видимо у тебя инициализация ключей прошла с ошибкой. Может быть сервер в этот момент был недоступен .
Попробуй перезагрузить систему, сделать еще раз init_key и поставить mousepad для теста.
Ключ Y в pacman-е в данном случае тебе не нужен, init_key обновляет базу сам.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
speccyfighter
сообщение 14.7.2020, 14:12
Сообщение #80


Крупный специалист
*****

Группа: Пользователь
Сообщений: 461
Регистрация: 1.5.2013
Вставить ник
Цитата
Пользователь №: 2379
Страна: Беларусь
Город: Не указан
Пол: Муж.



Репутация: 1


В секцию выбора устройства вывода, в версию 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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
speccyfighter
сообщение 23.7.2020, 17:20
Сообщение #81


Крупный специалист
*****

Группа: Пользователь
Сообщений: 461
Регистрация: 1.5.2013
Вставить ник
Цитата
Пользователь №: 2379
Страна: Беларусь
Город: Не указан
Пол: Муж.



Репутация: 1


Секция должна выглядеть где-то так:
Код
# 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-терминала может оставаться в неактивным в бэкграунд, с отказом работы хоткеев.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
speccyfighter
сообщение 23.7.2020, 17:46
Сообщение #82


Крупный специалист
*****

Группа: Пользователь
Сообщений: 461
Регистрация: 1.5.2013
Вставить ник
Цитата
Пользователь №: 2379
Страна: Беларусь
Город: Не указан
Пол: Муж.



Репутация: 1


Полный листинг 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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
speccyfighter
сообщение 23.7.2020, 21:24
Сообщение #83


Крупный специалист
*****

Группа: Пользователь
Сообщений: 461
Регистрация: 1.5.2013
Вставить ник
Цитата
Пользователь №: 2379
Страна: Беларусь
Город: Не указан
Пол: Муж.



Репутация: 1


Проверил в альте версию 0.36.
При воспроизведении, единственная замеченная "сопля", это по прерывании бесконечного цикла, нужно очищать экран. Иначе например help наложится на последнее изображение, на котором прерван бесконечный цикл. Или по выходу из бесконечного цикла, выполнить clear.
В остальном нормально. Ну может быть ещё help слегка подчистить от намёков на X-сы, в которых mplayer-vc 0.36+ запускаться не будет.
В ледяном не проверял, но заработает без эквилибристики как в альтовом pam0_console.
Упрощение проигрывания видео в tty сделано по-максимуму. И проще, на мой взгляд, уже просто некуда.

Главное, что в виртуальной консоли, мозг не будет ломать километрами опций и параметров.
И при этом, не будет требовать феноменальных мощностей железа и 4D. Видео заработает на всём, что хоть как-то можно сегодня назвать компьютером.


Сообщение отредактировал speccyfighter - 23.7.2020, 21:29
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
speccyfighter
сообщение 23.7.2020, 21:55
Сообщение #84


Крупный специалист
*****

Группа: Пользователь
Сообщений: 461
Регистрация: 1.5.2013
Вставить ник
Цитата
Пользователь №: 2379
Страна: Беларусь
Город: Не указан
Пол: Муж.



Репутация: 1


Цитата(speccyfighter @ 23.7.2020, 19:24) *
Проверил в альте версию 0.36.
- При воспроизведении, единственная замеченная "сопля", это по прерывании бесконечного цикла, нужно очищать экран. Иначе например help наложится на последнее изображение, на котором прерван бесконечный цикл. Или по выходу из бесконечного цикла, выполнить clear.
- В остальном нормально. Ну может быть ещё help слегка подчистить от намёков на X-сы, в которых mplayer-vc 0.36+ запускаться не будет.

Исправлено в последнем полном листинге.
Версия повышена до 0.36.1
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 23.7.2020, 22:11
Сообщение #85


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(speccyfighter @ 23.7.2020, 21:55) *
Исправлено в последнем полном листинге.
Версия повышена до 0.36.1

Юра , в Aur-е лежит твой mplayer-vc с версией 0.4.0 :
https://aur.archlinux.org/packages/mplayer-vc/
Может тогда еще повысишь версию и пушнуть его в aur ?
В ледяной то я его могу и так подсунуть тут проблем с версиями нет.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
speccyfighter
сообщение 23.7.2020, 22:26
Сообщение #86


Крупный специалист
*****

Группа: Пользователь
Сообщений: 461
Регистрация: 1.5.2013
Вставить ник
Цитата
Пользователь №: 2379
Страна: Беларусь
Город: Не указан
Пол: Муж.



Репутация: 1


Цитата(kostyalamer @ 23.7.2020, 20:11) *
Юра , в Aur-е лежит твой mplayer-vc с версией 0.4.0 :
https://aur.archlinux.org/packages/mplayer-vc/
Может тогда еще повысишь версию и пушнуть его в aur ?

Костя, зачем повышать? smile.gif
В аур ноль-четыре-ноль.
А это же ноль-тридцатьшесть-один, а не ноль-сорок-ноль.

До ноль-сорок-ноль ей ещё далеко.

В 0.36.1 реализовано:
- Или один файл с окончанием проигрывания
- Или любые несколько файлов в бесконечном цикле с выходом из цикла по двойному q.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 23.7.2020, 22:35
Сообщение #87


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(speccyfighter @ 23.7.2020, 22:26) *
Костя, зачем повышать? smile.gif
В аур ноль-четыре-ноль.
А это же ноль-тридцатьшесть-один, а не ноль-сорок-ноль.

Точно , тогда отправлю в aur smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 24.7.2020, 8:51
Сообщение #88


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Собрал пакет , погонял на рабочей системе в чистой консоли на тестовых видео - все отлично работает.
Вечером пушну в Aur.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 24.7.2020, 22:56
Сообщение #89


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


К сожалению aur немного прилег :
Цитата
503 - Service Unavailable
Don't panic! This site is down due to maintenance. We will be back soon.

Бывает с ним такое иногда , как подымется - пушну.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 25.7.2020, 1:07
Сообщение #90


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Залил в Aur : https://aur.archlinux.org/packages/mplayer-vc/
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

4 страниц V  < 1 2 3 4 >
Ответить в эту темуОткрыть новую тему
( Гостей: 1 )
Пользователей: 0

 



RSS Текстовая версия Сейчас: 29.3.2024, 17:43