[РЕШЕНО] TV online

В этой теме задаем любые интересующие вопросы про Linux
Закрыто
Серый
Сообщения: 844
Зарегистрирован: 27 сен 2012, 19:20
Темы: 102
Статус: Не в сети

[РЕШЕНО] TV online

Сообщение Серый » 08 янв 2017, 11:34

Сейчас смотрю TV онлайн так. Созданы исполняемые файлы в хоуме.

Код: Выделить всё

seryi@seryi-laptop:~$ cat .p
mplayer -fs http://livebeta.publika.md/LIVE/P/6810.m3u8
seryi@seryi-laptop:~$ cat .j
mplayer -fs http://cdn.magictvbox.eu:8080/jurnaltv/720p.m3u8
seryi@seryi-laptop:~$ cat .m
mplayer -fs http://cdn.magictvbox.eu:8080/m1/720p.m3u8
seryi@seryi-laptop:~$ cat .mbc
mplayer -fs http://cdn.magictvbox.eu:8080/mbc/720p.m3u8
Запускаю с консоли, например, первый свой канал ./.p смотрю, по клавише q выхожу в консоль, потом набираю например ./.j и т.д.
Мне бы скрипт какой, чтобы каналы переключать как на телевизоре, одной кнопкой вперёд или другой кнопкой назад.
Заранее спасибо.
ЗЫ Прошу не рекомендовать сменить плэйер.

Аватара пользователя
ZEN
Администратор
Сообщения: 1358
Зарегистрирован: 27 сен 2012, 18:23
Темы: 208
Откуда: Украина, Одесса
Статус: Не в сети

Re: TV online

Сообщение ZEN » 08 янв 2017, 16:23

Самый простой вариант - вытащить содержимое каждой ссылки и сформировать один единый m3u файл. А дальше открываешь в том же vlc и переключаешь "каналы". Не думаю, что для этого нужен bash-скрипт.

P.S. У меня не открываются ссылки на cdn.magictvbox.eu, так что сформировать плейлист не могу. Можешь сбросить их содержимое и я его сделаю
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо

Серый
Сообщения: 844
Зарегистрирован: 27 сен 2012, 19:20
Темы: 102
Статус: Не в сети

Re: TV online

Сообщение Серый » 08 янв 2017, 17:04

ZEN, vlc у меня нет и ставить не хочу. Есть способ как в mplayer2 переключать каналы?
Насчёт ссылок, попробуй по IP
Name: cdn.magictvbox.eu
Address: 89.28.21.19

Аватара пользователя
ZEN
Администратор
Сообщения: 1358
Зарегистрирован: 27 сен 2012, 18:23
Темы: 208
Откуда: Украина, Одесса
Статус: Не в сети

Re: TV online

Сообщение ZEN » 08 янв 2017, 17:32

Нет, не работает.. Попробуй сам выполнить:

Код: Выделить всё

$ wget http://cdn.magictvbox.eu:8080/jurnaltv/720p.m3u8 -O -
$ wget http://cdn.magictvbox.eu:8080/m1/720p.m3u8 -O -
$ wget http://cdn.magictvbox.eu:8080/mbc/720p.m3u8 -O -
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо

Серый
Сообщения: 844
Зарегистрирован: 27 сен 2012, 19:20
Темы: 102
Статус: Не в сети

Re: TV online

Сообщение Серый » 08 янв 2017, 17:56

Ну не знаю...

Код: Выделить всё

seryi@seryi-laptop:~$ nslookup cdn.magictvbox.eu
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	cdn.magictvbox.eu
Address: 89.28.21.19
Но не за это речь была начата. Я как бы вроде внятно сформулировал чего хочу.

Аватара пользователя
ZEN
Администратор
Сообщения: 1358
Зарегистрирован: 27 сен 2012, 18:23
Темы: 208
Откуда: Украина, Одесса
Статус: Не в сети

Re: TV online

Сообщение ZEN » 08 янв 2017, 19:26

Да как бы я тоже внятно сформулировал, что все делается гораздо проще и без костылей. Обычная практика слепить m3u файл и открывать в любимом проигрывателе. Например, vlc:
Изображение
Повторюсь, я бы слепил m3u файл, если бы мог вытащить содержимое по ссылкам. Но так как я этого не могу сделать по техническим причинам, то предлагаю это сделать самому.
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо

Серый
Сообщения: 844
Зарегистрирован: 27 сен 2012, 19:20
Темы: 102
Статус: Не в сети

Re: TV online

Сообщение Серый » 08 янв 2017, 23:49

Мне костыли нравятся.
Короче, сделал файл. Запускаю так
./.123
Сам файл:

Код: Выделить всё

seryi@seryi-laptop:~$ cat .123
mplayer -fs http://livebeta.publika.md/LIVE/P/6810.m3u8
mplayer -fs http://cdn.magictvbox.eu:8080/jurnaltv/720p.m3u8
mplayer -fs http://cdn.magictvbox.eu:8080/m1/720p.m3u8
mplayer -fs http://cdn.magictvbox.eu:8080/mbc/720p.m3u8
Переключаю следующий канал кнопкой q (выход из плэйера и автоматический запуск следущей ссылки). Но есть 2 "но": кнопки назад нет, и по окончании каналов не идёт переход на начало.
Соответственно 2 вопроса: как назад возвращать и как по кругу это запускать?
PS Дописываю через время, сделал цикл по кругу

Код: Выделить всё

seryi@seryi-laptop:~$ cat .123
while true
do
mplayer -fs http://livebeta.publika.md/LIVE/P/6810.m3u8
mplayer -fs http://cdn.magictvbox.eu:8080/jurnaltv/720p.m3u8
mplayer -fs http://cdn.magictvbox.eu:8080/m1/720p.m3u8
mplayer -fs http://cdn.magictvbox.eu:8080/mbc/720p.m3u8
done
Как его прерывать?

Аватара пользователя
ZEN
Администратор
Сообщения: 1358
Зарегистрирован: 27 сен 2012, 18:23
Темы: 208
Откуда: Украина, Одесса
Статус: Не в сети

Re: TV online

Сообщение ZEN » 09 янв 2017, 00:58

Вот скрипт мотивам темы "Простой скрипт для радио":

Код: Выделить всё

#!/usr/bin/env bash

PLAYER="mplayer -fs";

# TV Station List
RSL=(
    "publika=http://livebeta.publika.md/LIVE/P/6810.m3u8"
    "jurnaltv=http://cdn.magictvbox.eu:8080/jurnaltv/720p.m3u8"
    "m1=http://cdn.magictvbox.eu:8080/m1/720p.m3u8"
    "mbc=http://cdn.magictvbox.eu:8080/mbc/720p.m3u8"
);

### FUNCTION LIST ###
function interrupted () {
    stop;
    reset;
    exit 0;
}

function stop () {
    kill -SIGTERM $PROC_ID &> /dev/null;
}

function play () {
    stop;
    echo ${RSL[$POS]%=*};
    $PLAYER "${RSL[$POS]#*=}" &> /dev/null & PROC_ID=$!;
}

### MAIN LOOP ###
unset PROC_ID;
trap interrupted INT;

if [[ ${#RSL[@]} == 0 ]]
then
    echo "Check your list of radio stations";
    exit 1;
fi

POS=0;
play;

while
read -s -n1 BUFF
[[ -n $BUFF ]]
do
    case $BUFF in
        N|n) # Next
            POS=$(($POS+1));
            test $POS -ge ${#RSL[@]} && POS=0;
            play;
            ;;
        B|b) # Back
            POS=$(($POS-1));
            test $POS -lt 0 && POS=$((${#RSL[@]}-1));
            play;
            ;;
        S|s) # Stop
            stop;
            ;;
        P|p) # Play
            play;
            ;;
        Q|q) # Quit
            stop;
            exit 0;
            ;;
    esac
done

# Clean up
stop;

exit 0;
Управление:
N (Next) - Следующая станция (если станция последняя в списке, то автоматически будет переключение на первую станцию)
B (Back) - Предыдущая станция (если перед этим была первая станция в списке, то следующей будет последняя автоматически)
S (Stop) - Стоп
P (Play) - Воспроизведение
Q (Quit) - Выход

Главный минус - команды нужно вводить в активное окно терминала

P.S. Лучшим решением было бы слепить m3u плейлист.
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо

Серый
Сообщения: 844
Зарегистрирован: 27 сен 2012, 19:20
Темы: 102
Статус: Не в сети

Re: TV online

Сообщение Серый » 14 янв 2017, 18:58

Друг ZEN, извини, забыл, что уже поднимал эту тему.
Итак, други, что я сделал (кстати ZEN, ты идею подал с плейлистом, за что огромная благодарность), итак:

Код: Выделить всё

seryi@seryi-laptop:~$ cat ~/.i3/config | grep tv
bindsym $mod+t exec mplayer -loop 0 -fs -playlist .tv
seryi@seryi-laptop:~$ cat .tv
http://cdn.magictvbox.eu:8080/jurnaltv/720p.m3u8
http://livebeta.publika.md/LIVE/P/6810.m3u8
http://cdn.magictvbox.eu:8080/m1/720p.m3u8
http://cdn.magictvbox.eu:8080/mbc/720p.m3u8
Запускаю хоткеем win+t (t от слова телевидение), переключаю энтером, по кругу, благодаря ключу -loop
Выхожу по клавише q
Счастлив :)

Аватара пользователя
ZEN
Администратор
Сообщения: 1358
Зарегистрирован: 27 сен 2012, 18:23
Темы: 208
Откуда: Украина, Одесса
Статус: Не в сети

Re: TV online

Сообщение ZEN » 14 янв 2017, 20:50

Отлично!)
Тему переношу в Вопросы/Ответы, так как решение нашлось без использования bash -а
бог создал труд и обезьяну
чтоб получился человек
а вот пингвина он не трогал
тот сразу вышел хорошо

Закрыто

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость