Nano Hash - криптовалюты, майнинг, программирование

Vlc Проверить статус потока

Я использую VLC для ретрансляции потока, и эта сторона вещей работает очень хорошо. Однако через несколько часов мне нужно повторно аутентифицироваться и повторно запросить поток. У меня есть скрипт, который просто нужно запустить, и он будет обрабатывать повторную аутентификацию и запуск vlc. Проблема, с которой я сталкиваюсь, заключается в том, как выяснить, не работает ли поток.

При использовании говорите:

pidof vlc

Я получаю pid процесса VLC. При проверке сверху я вижу, что VLC работает и потребляет процессор. Однако, когда я пытаюсь воспроизвести поток, ничего не происходит. Если я снова запущу свой скрипт, поток перезапустится, и я снова смогу его посмотреть. Таким образом, даже если поток остановился, VLC продолжает работать, не давая мне никаких указаний о том, действительно ли работает сам поток или просто VLC.

Единственное, что я заметил до сих пор, это то, что когда поток не работает, загрузка ЦП, кажется, резко возрастает в соответствии с top.

Когда поток работает, загрузка процессора составляет около 1%, когда он не работает, кажется, что он превышает 40%. Я наблюдал это пару раз, но я могу только предположить, что это потенциально может быть способом, которым я мог бы гарантировать, что поток работает, но я не уверен на 100% в этом подходе.

Кто-нибудь знает, как я могу подтвердить, работает ли фактический поток или это просто процесс VLC?

30.07.2015

Ответы:


1

следует отдать должное @mundu

вот скрипт, который я создал для проверки потоковой передачи vlc.

// vlc_verify1.sh
#!/bin/bash

VLC_CONF="$1"
VLC_COMMAND="$2"
VLC_PASS="videolan"

echo "" > nohup.out

nohup vlc --intf telnet --vlm-conf $VLC_CONF --telnet-password $VLC_PASS &
vlc_pid=$!
echo "vlc has a pid of $vlc_pid"

sleep 5

echo  "nc start"
nc localhost 4212 < $VLC_COMMAND

kill $vlc_pid
exit 0

// vlm-conf, you have to replace $url with the actual url
new channel1 broadcast enabled
setup channel1 input $url
control channel1 play
show

// command.txt
videolan
show

vlc_verify1.sh будет выводить статус текущей игры, как указано @mundu. то, что я сделал, это выполнить поиск вывода и посмотреть, «играет» ли его состояние.

Обратите внимание, я не указал вывод, например setup channel1 output #std{access=udp,mux=ts,dst=239.192.174.105:1234}.

Причина этого в том, что когда-то vlc будет использовать 100% процессорного времени. Я понятия не имею, почему так. но если я избавлюсь от этого, у меня не возникнет подобных проблем. Недостатком этого является то, что будет всплывающее окно, воспроизводящее потоки. но я не думаю, что это большое дело.

04.08.2016

2

Легкий. Используйте интерфейс VLM.

vlc -I telnet --vlm-conf vlm.conf

Настройте свою командную строку, чтобы поместить sout в ваш vlm.conf, как в этом примере:

new channel1 broadcast enabled
setup channel1 input http://host.mydomain/movie.mpeg
setup channel1 output #std{access=udp,mux=ts,dst=239.192.174.105:1234}

control channel1 play

Затем вы можете войти в интерфейс telnet и набрать show, чтобы увидеть текущие трансляции и их статус.

> show
show
media : ( 1 broadcast - 0 vod )
channel1
        type : broadcast
        enabled : yes
        loop : yes
        inputs
            1 : http://host.mydomain/movie.mpeg
        output : #std{access=udp,mux=ts,dst=239.192.174.105:1234}
        options
        instances
            instance
                name : default
                state : playing
                position : 0.058974
                time : 6473336
                length : 109766611
                rate : 1.000000
                title : 0
                chapter : 0
                can-seek : 1
                playlistindex : 1

Вы можете прочитать больше здесь https://wiki.videolan.org/Documentation:Streaming_HowTo/VLM/< /а>

PS: я бы увеличил журнал -v(vv) и, возможно, использовал системный журнал, чтобы сохранить его и отслеживать любые проблемы впоследствии.

09.06.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..