Обнаружить зацикливание потока
Как я могу обнаружить зацикливание потока IPTV? Я попытался решить это с помощью ffprobe:
ffprobe -loglevel quiet -show_streams -print_format json -pretty 'http://linktostream'
Но не получил необходимые данные.
1 ответ
Если сервер просто обслуживает видео, а затем перезапускает его в конце для создания цикла, то вам, скорее всего, потребуется анализировать сами потоки байтов. Другими словами, выберите точку в видеопотоке и сохраните 50 байтов из потока байтов, а затем отслеживайте поток, пока снова не увидите те же байты.
Если само видео зациклено, т.е. если вы загрузите все видео, оно будет длиться 100 минут, но содержимое каждые 10 секунд будет одинаковым, тогда вы можете анализировать кадры, используя что-то вроде OpenCV (https://opencv.org ) - например, сохраните первые 10 кадров, а затем сравните каждый кадр после этого, чтобы увидеть, соответствует ли он одному из них. Как только вы найдете совпадение, то следующие кадры также совпадают, и вы должны были найти период цикла.
В обоих случаях, если видео зашифровано, это может быть сложнее - подход байтового потока, вероятно, все еще будет работать, но вы не сможете есть и сравнивать отдельные кадры.