Let’s say you’re on OS X. (If you’re not, substitute the path to VLC executable with /usr/bin/vlc
or just vlc
; you could even use cvlc
).
PATHTOFILE=/Users/ivucica/my_video.mp4 STREAMID=ivucica.aaaa-bbbb-cccc-dddd VLC=/Applications/VLC.app/Contents/MacOS/VLC if [ ! -e "${VLC}" ] ; then VLC=vlc fi "${VLC}" "${PATHTOFILE}" --sout '#transcode{vcodec=FLV1,acodec=mp3,samplerate=44100}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://a.rtmp.youtube.com/live2/'${STREAMID}
I’ve seen a variant where vcodec
is h264
, acodec
is aac
and also vb
is set to 1000.
If you want to use FFMPEG instead:
./ffmpeg -re -i "${PATHTOFILE}" -vcodec libx264 -preset veryfast -maxrate 1984k -bufsize 3968k -vf "format=yuv420p" -g 60 -acodec libmp3lame -b:a 96k -ar 44100 -f flv -s 1920x1080 rtmp://a.rtmp.youtube.com/live2/${STREAMID}
Where do you get the STREAMID
from? Create a YouTube Live event in the Creator Studio, then create a ‘custom ingestion’, then read the settings:
Let’s say you haven’t been running your stream for months. I’m only guessing about what is actually happening, but the logical explanation is that something is garbage-collecting the ingestion settings without telling the UI about it. Error as follows may happen:
VLC media player 2.2.1 Terry Pratchett (Weatherwax) (revision 2.2.1-0-ga425c42) [0000000100302968] core libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface. [000000010038a3f8] avcodec access out error: Failed to open rtmp://a.rtmp.youtube.com/live2/ivucica.aaaa-bbbb-cccc-dddd [0000000100389aa8] stream_out_standard stream out error: no suitable sout access module for `rtmp/ffmpeg{mux=flv}://rtmp://a.rtmp.youtube.com/live2/ivucica.aaaa-bbbb-cccc-dddd' [0000000100389838] core stream output error: stream chain failed for `transcode{vcodec=FLV1,acodec=mp3,samplerate=44100}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://a.rtmp.youtube.com/live2/ivucica.aaaa-bbbb-cccc-dddd}' [000000010050f648] core input error: cannot start stream output instance, aborting
If that is the case, go and create a new custom ingestion. Or create a whole new stream. Then use the new ID where appropriate.
n.b. As of August 2015, if you’re just playing with streaming, Ustream seems to start streaming (and thus provide useful feedback) far faster than YT Live.