Quit VLC on loss of stream
Posted: 15 Jan 2021 07:34
Using VLC to transcode via a VLM and I can not work out how to get VLC to quit if it stops transcoding the stream.
VLC is being started with
Where the VLM is simply
If VLC stops streaming for some reason VLC logs this (but does not quit)
And so I am stuck.
I've been told to build a whole tool using the telnet interface to interrogate VLC - but that doesn't help - because the stream shows as playing (it's not) and `is_playing` always returns `0` even when it _is_ working.
Surely... there must be a way to know if VLC is actually outputting something... somehow?
VLC is being started with
Code: Select all
/usr/bin/vlc -I telnet --telnet-password=${PASSWORD} --telnet-port=${PORT} --drop-late-frames --skip-frames --play-and-exit --no-daemon --adaptive-logic=${VLC_ADAPTIVE_LOGIC} --adaptive-maxwidth=${VLC_ADAPTIVE_WIDTH} --adaptive-maxheight=${VLC_ADAPTIVE_HEIGHT} --adaptive-bw=${VLC_ADAPTIVE_BITRATE} --vlm-conf=/vlc/stream.vlm
Code: Select all
del all
new stream broadcast enabled
setup stream option network-caching=1000
setup stream input "http://example.com/stream/abcnews24" loop
setup stream output #transcode{venc=x264{preset=ultrafast},vcodec=h264,threads=4,vb=1000}:duplicate{dst='rtp{access=udp,mux=ts,ttl=15,dst=234.0.1.1,port=1234,sdp=sap://,group="News",name="ABC News 24"}'}
control stream play
Code: Select all
2x3_1 | [00007f33b3b8e5b0] stream_out_transcode stream out: aspect-ratio changed, reiniting. 1 -> 0 : 1 -> 1.
2x3_1 | [00007f33b27bd500] x264 encoder error: Input picture width (720) is greater than stride (0)
I've been told to build a whole tool using the telnet interface to interrogate VLC - but that doesn't help - because the stream shows as playing (it's not) and `is_playing` always returns `0` even when it _is_ working.
Code: Select all
workstation:~ troy$ telnet streaming.server.example.com 9999
Trying 10.0.0.1...
Connected to streaming.server.example.com.
Escape character is '^]'.
VLC media player 3.0.11.1 Vetinari
Password:
Welcome, Master
> show stream
show
stream
type : broadcast
enabled : yes
loop : yes
inputs
1 : http://example.com/stream/abcnews24
output : #transcode{venc=x264{preset=ultrafast},vcodec=h264,threads=4,vb=1000}:duplicate{dst='rtp{access=udp,mux=ts,ttl=15,dst=234.0.0.1,port=1234,sdp=sap://,group="News",name="ABC News 24"}'}
options
network-caching=1000
instances
instance
name : default
state : playing
position : 0.000000
time : 0
length : 0
rate : 1.000000
title : 0
chapter : 0
can-seek : 0
playlistindex : 1
>