Zenway

Linux - это интересно!

Вы не вошли.

#1 28-05-2021 16:18:59

svm
Модератор
Откуда: N-sk 54.93, 82.89
Здесь с 04-12-2017
Сообщений: 138
Сайт
UbuntuFirefox 78.0

Как из терминала запустить vlc +video +audio

Чуть подробнее:
с помощью youtube-dl -g , получаю 2 прямые ссылки на видео и аудио, нужно скормить их плееру vlc.
Как это сделать через GUI =  я знаю, НО мне нужно именно из терминала.

MPV не предлагайте - всё работает, только нужно ставить  youtube-dl с github.com
потому что в репах (дебьяна,бубунты и минта) их ещё так и не обновили wink

Для vlc я пользовал скрипт ~/.local/share/vlc/lua/playlist/youtube.lua
но недавно на ютуб опять перепилили API, поэтому со старым скриптом не прокатывает,  с и с ним , можно было смотреть только 720p  sad

Поэтому мне интересно как это сделать в vlc + youtube-dl ?

Решение:
Вот рабочий скрипт, как нибудь его обзываем,делаем исполняемым,в браузере, через дополнение Open With запускаем его на странице youtube (в качестве аргумента, он принимает  ссылку на видео)

смотрим youtube 1080p 60fps  в VLC ,  (видеокарта GT710+проц C2D E8500)

ksnip_20210607-184729.png
ksnip_20210604-192834.png
ksnip_20210604-203127.png

MP4 AVC   при 60 кадрах вообще не грузит CPU smile ,
WEBP VP9 , видюха обрабатывать не умеет ,  поэтому 60-90% CPU ,
даже 2560x1440 30Hz - показывает, а 2560x1440 60Hz  уже не вывозит, 
но у меня монитор всего 2560x1080  60Hz , поэтому  1440 - это уже лишнее  yikes

#!/bin/bash

### Вариант с логированием просмотренного: ### дата_время ,название, ссылка youtube .
IFS=$'\n' x=($(youtube-dl -f "(bestvideo[height<=1440]/bestvideo[height<=1080][fps<=30])+bestaudio/best" -eg $(echo "$@" | cut -d'&' -f1) )) && 
echo -e "### $(date +%Y.%m.%d_%H:%M:%S)\n## ${x[0]}\n$@\n"  >> $HOME/Videos/yt.log && 
vlc --meta-title "${x[0]}" "${x[1]}" --input-slave "${x[2]}"

### Ещё вариант
#youtube-dl -f "bestvideo[height<=1080]+bestaudio/best" --get-filename -o '"%(title)s"' -g $@ | 
#awk 'BEGIN{FS=RS;RS=""}{print $1" --input-slave "$2" --meta-title "$3}' | xargs vlc

### Ещё вариант
#readarray -t x <<< $(youtube-dl -f "bestvideo+bestaudio/best" -eg "$@" ) && 
#vlc --meta-title "${x[0]}" "${x[1]}" --input-slave "${x[2]}"

Отредактировано svm (07-06-2021 16:15:25)


Умный поймёт , а дураку и так всё равно.

Вне форума

#2 29-05-2021 23:02:36

jerky
Гость
LinuxChrome 90.0

Re: Как из терминала запустить vlc +video +audio

@svm,
если ссылаться на документацию, то можно подсмотреть нужные параметры, открыв Инстументы>Сообщения и выставив уровень verbosity в 2

#3 30-05-2021 00:55:55

jerky
Гость
LinuxChrome 90.0

Re: Как из терминала запустить vlc +video +audio

@svm,
всё проще, чем писал выше: vlc 'VIDEO_DIRECT_LINK' --input-slave 'AUDIO_DIRECT_LINK'

#4 30-05-2021 13:24:58

svm
Модератор
Откуда: N-sk 54.93, 82.89
Здесь с 04-12-2017
Сообщений: 138
Сайт
UbuntuFirefox 78.0

Re: Как из терминала запустить vlc +video +audio

jerky пишет:

@svm,
всё проще, чем писал выше: vlc 'VIDEO_DIRECT_LINK' --input-slave 'AUDIO_DIRECT_LINK'

Большое спасибо тебе .
Спрашивал и на тостере и на лоре,
все начинают советовать MPV
Я им - вы вопрос то хоть читали ? там всё русским по белому big_smile (вопрос именно про VLC + проставлены тэги cvlc,vlc)
или...

во самый гениальный ответ ))

"
я, конечно, не vlc'олог, но чем не устроит

vlc $url

?
с какими-нибудь ключами?
"

ps
У меня ума не хватило открыть расширенный help vlc -H
Я же открывал vlc --help , поэтому не увидел, а если бы и увидел, то не факт, что сообразил бы для чего эта опция sad

Отредактировано svm (31-05-2021 08:34:58)


Умный поймёт , а дураку и так всё равно.

Вне форума

#5 31-05-2021 13:54:57

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,303
LinuxFirefox 68.0

Re: Как из терминала запустить vlc +video +audio

как вариант, можно не ставить расширений, а скармливать выделенную ссылку через xclip -o
повесил на хоткей скрипт, полностью приводить не буду, потому что не vlc
$(xclip -o -selection clipboard)"


Долой DE! Даёшь WM!

Вне форума

#6 31-05-2021 13:57:01

svm
Модератор
Откуда: N-sk 54.93, 82.89
Здесь с 04-12-2017
Сообщений: 138
Сайт
UbuntuFirefox 78.0

Re: Как из терминала запустить vlc +video +audio

jerky пишет:

...

Помоги пожалуйста разобраться с выбором форматов в youtube-dl
Не получается чтобы с одним скриптом открывалось любое видео.
Нужно видео не больше 1080 + не больше 30fps + лучшее аудио.
К примеру: вот три ссылки, на видео разного качества, 1-я из них не хотит работать .ЧЯДНТ?  sad

https://www.youtube.com/watch?v=VtWIn7ch708
https://www.youtube.com/watch?v=0YONAP39jVE
https://www.youtube.com/watch?v=jP3ceURvIYc
VLC открывается и вылетает с ошибкой Segmentation fault
$ vlc++ https://www.youtube.com/watch?v=VtWIn7ch708
VLC media player 3.0.9.2 Vetinari (revision 3.0.9.2-0-gd4c1aefe4d)
[000055e500c86670] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
qt5ct: using qt5ct plugin
qt5ct: D-Bus global menu: no
qt5ct: D-Bus system tray: yes
[00007f7970045a30] mp4 demux: Fragment sequence discontinuity detected 1 != 0
/home/svm/bin/vlc++: line 2: 129127 Segmentation fault      vlc --meta-title "${x[0]}" "${x[1]}" --input-slave "${x[2]}"

код скрипта vlc++

#!/bin/bash
IFS=$'\n' x=($(youtube-dl -f "bestvideo[ext=mp4][height<=1080][fps<=30]+bestaudio/best" -eg $@)) && vlc  --meta-title "${x[0]}" "${x[1]}" --input-slave "${x[2]}"

Отредактировано svm (03-06-2021 15:45:32)


Умный поймёт , а дураку и так всё равно.

Вне форума

#7 31-05-2021 19:29:26

jerky
Гость
LinuxChrome 90.0

Re: Как из терминала запустить vlc +video +audio

@svm,
У меня завелись все три указанные видео этим же скриптом.
Правда первое видео лагает на первых минутах.
Версия vlc - 3.0.13.
> mp4 demux: Fragment sequence discontinuity detected 1 != 0
это проблема плеера, а не ссылок ( не даром во всех интернетах советуют mpv smile )
Такое его поведение у себя наблюдаю после неудачных обновлений, помогает откат на предыдущую версию.

Скрытый текст

если придираться к скрипту, то:
после определения IFS точку с запятой лучше убрать, тогда действовать значение этой переменной будет только на следующую команду, что и требуется.
индексы массива лучше заключить в двойные кавычки (но это в том случае, если убрать точку с запятой после IFS)
опция -s не нужна, т.к. следующие -e и -g тоже "тихие" и ничего на диск не пишут
есть ли смысл задавать конретный контейнер в опции формата? я бы убрал '[ext=*]'
знак вопроса тоже бы убрал; он нужен, если формат не определён, а здесь определён как 'bestvideo'

#8 01-06-2021 09:39:07

svm
Модератор
Откуда: N-sk 54.93, 82.89
Здесь с 04-12-2017
Сообщений: 138
Сайт
UbuntuFirefox 78.0

Re: Как из терминала запустить vlc +video +audio

jerky пишет:

...

Спасибо.
Сбросил конфиги VLC , я их уже давно не менял, бог знает, что я там успел понакрутить))
Стало луше.
Скрипт поправил
Ещё есть подобный вариант на AWK

#!/bin/bash

#IFS=$'\n' x=($(youtube-dl -f "bestvideo[height<=1080]+bestaudio/best" -eg "$@" )) && vlc  --meta-title "${x[0]}" "${x[1]}" --input-slave "${x[2]}"

youtube-dl -f "bestvideo[ext=mp4][height<=1080]+bestaudio/best" -eg "$@" | awk 'BEGIN{FS=RS;RS=""}{print $2" --input-slave "$3" --meta-title \""$1"\"" }' | xargs vlc

Отредактировано svm (06-06-2021 15:54:06)


Умный поймёт , а дураку и так всё равно.

Вне форума

#9 01-06-2021 18:46:14

jerky
Гость
LinuxChrome 90.0

Re: Как из терминала запустить vlc +video +audio

@svm,
дабы использовать сторонних утилит по минимуму, можно сделать так:

readarray -t yt_response <<< "$(youtube-dl <нужные опции>)"
vlc --meta-title "${yt_response[0]}" "${yt_response[1]}" --input-slave "{yt_response[2]}"

#10 02-06-2021 06:30:39

svm
Модератор
Откуда: N-sk 54.93, 82.89
Здесь с 04-12-2017
Сообщений: 138
Сайт
UbuntuFirefox 78.0

Re: Как из терминала запустить vlc +video +audio

jerky пишет:

...

можно и так, но забыл/исправь ${yt_response[2]}
как по мне, 1-вый вариант проще/читаемей (я им и пользуюсь, а с awk  и твой, оставил в скрипте  как пример(может пригодиться ещё где нибудь)


Умный поймёт , а дураку и так всё равно.

Вне форума

#11 02-06-2021 19:12:38

jerky
Гость
LinuxChrome 90.0

Re: Как из терминала запустить vlc +video +audio

да, пропустил '$', но исправить не могу, я не зарегестрирован smile

#12 06-06-2021 16:02:02

svm
Модератор
Откуда: N-sk 54.93, 82.89
Здесь с 04-12-2017
Сообщений: 138
Сайт
UbuntuFirefox 78.0

Re: Как из терминала запустить vlc +video +audio

BigOrange пишет:

как вариант, можно не ставить расширений, а скармливать выделенную ссылку через xclip -o

Не удобно - много лишних/ненужных  телодвижений ))
Проще в два клика из контекстного меню открывать.


Умный поймёт , а дураку и так всё равно.

Вне форума

#13 07-06-2021 07:54:04

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,303
LinuxFirefox 68.0

Re: Как из терминала запустить vlc +video +audio

@svm, скопировать ссылку и хоткей.


Долой DE! Даёшь WM!

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] claudebot

Подвал форума

Под управлением FluxBB
Модифицировал Visman

[ Сгенерировано за 0.429 сек, 9 запросов выполнено - Использовано памяти: 1.67 Мбайт (Пик: 1.77 Мбайт) ]