22.12.2021 09:33
OlegON
 
Впечатленный помойками из 8000+ каналов, я все же был опечален тем, что многие из них тупо не работали.
Листаешь, листаешь - "Не воспроизводится", просто нет подключения (некоторые заблокированы либо доблестным РКН, либо, наоборот, самим поставщиком IPTV для нашей страны). При проверке более подробно выясняется, что у некоторых подключение есть, но выдает совсем не то, что нужно. Соответственно, плейлист я стал собирать сам, то есть копирую файлик себе, а потом его проверяю нижеследующим скриптом.
Код:
#!/bin/bash
cd /scripts
if [[ $# -ne 1 ]]; then
    echo "Illegal number of parameters" >&2
    exit 2
fi
cp -f "$1" tmp
cat tmp | grep -v "^#" | while read i
do
z=`echo "$i"| sed -e 's/|.*//'`
echo "$i"
timeout -k 10 30 ffprobe -v error -rw_timeout 1000000 -probesize 32 -fflags nobuffer -analyzeduration 0 -user-agent "LGTVlavf" -i "$i" || sed -i "s|$z|#$z|" "$1"
done
rm -f tmp
Суть происходящего:
Плейлист копируется в отдельный файл tmp (имейте ввиду, если надумаете в несколько потоков запускать скрипт)
Оттуда убираются комментарии
Для каждой ссылки вызывается ffprobe с лимитом в 30 секунд (у меня был случай, когда какой-то канал чем-то ffprobe кормил всю ночь)
Если это не медийный поток, то в оригинальном файле строка со ссылкой комментируется.
В конце файл tmp удаляется.
Часовой пояс GMT +3, время: 02:03.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.