Broadcasting to YouTube Live via RTMP using VLC from terminal - youtube

When running:
cvlc -vvv 'Bootstrap Tutorial.mp4' --sout '#rtp{dst=rtmp://a.rtmp.youtube.com/live2,name=pa1p-8c4m-zzvp-5j6t,mux=ts}'
I get this debugging log.
When additionally specifying the access method:
cvlc -vvv 'Bootstrap Tutorial.mp4' --sout '#std{access=rtmp,dst=rtmp://a.rtmp.youtube.com/live2/pa1p-8c4m-zzvp-5j6t,mux=ts}'
I get this debugging log.
How do I stream live video and audio to YouTube using VLC from terminal?
Resources I looked into:
https://blog.vucica.net/2015/08/streaming-to-youtube-live-with-vlc-and-ffmpeg.html
https://forum.videolan.org/viewtopic.php?f=14&t=130520&p=436913&hilit=rtmp+youtube#p436913
Problems Starting VLC HTTP Stream with Servlet
https://forum.videolan.org/viewtopic.php?f=4&t=112221&p=380232&hilit=rtmp+youtube#p380232

i transmitted video to youtube live from terminal using vlc.
Following is the command:
cvlc -vvv FILE016.MP4 --sout '#transcode{vcodec=h264,scale=Auto,width=1280,height=720,acodec=mp3,ab=128,channels=2,samplerate=44100}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://a.rtmp.youtube.com/live2/stream-name}'
Note , youtube sometimes shows a message to use h264 as transcoder and ab to 128 when i tried to transcode video to flv on a low speed internet connection.

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}
Streaming to YouTube Live with VLC and FFMPEG

Related

Using vlc command line for capture device frin a network URL

I'm trying to capture a video using vlc.
The procedure is standard using the GUI :
enter the url e.g http://some_site_some_video.mp4/playlist.m3u8 in the network protocol capture device tool (ctrl+n) in the next screen enter the path so save the file and that's it.
Tried using VLC docs, and the closest command I found was vlc -I dummy -vvv input_stream --sout
but
vlc -I dummy -vvv http://some_site_some_video.mp4/playlist.m3u8 --sout home/me/videos
Didn't work.
Is it the right command to use?

Packaging AV streams from youtube into mpeg2 ts container?

I am trying to pull video streams from Youtube and repackage it into MPEG2 TS container.Youtube streams audio(.m4a) and video(.mp4) as separate streams and packages into mp4 container format at the client end.Are there any ffmpeg libraries or any tools which packages the individual streams into MPEG2-TS container?
Yes, ffmpeg has an mpegts option. First, you will need to merge your audio and video. There is a great answer on Super User on how to merge audio and video so I will not steal the answerer's rep by copying it.
Once you have your combined video, you can convert files to MPEG-TS like this:
ffmpeg -i input.avi -f mpegts -vcodec mpeg2video -sameq output.ts
(source, I have no affiliation)

Http Live Streaming without encoding

I have MPEG-TS H.264 video stream of Live TV Channel, I want to Live Stream it for iPhone but as HLS requires to make segments (e.g.: 10s) segment and send it using M3u8. and for this purpose I am currently using ffmpeg and m3u8-segmenter available on internet. But I do not want to use transcoding using ffmpeg as i have memory + processor limitations on my hardware. Is it possible that i can only make segments of the MPEG-TS video and directly send it to the iPhone.
I have tried many ways but unable to do so. I am using Linux based system.
Please help me, what are the procedures of live streaming to iphone without transcoding the video.
Thanks
The best way to go about this is to cut out FFmpeg entirely. Although you can coerce FFmpeg to not transcode (by using -c copy), since the video is already in MPEG-TS format straight off of the livestream, it's best to use it directly.
Since it looks like the video is coming over HTTP, you can use curl to print it to stdout:
curl http://localhost:6954/myvideo.ts | ./m3u8-segmenter -i - -d 10 -p outputdir/prefix -m outputdir/output.m3u8 -u http://domain.com
Or if you want to use wget instead of curl, it's similar
wget -O - http://localhost:6954/myvideo.ts | ./m3u8-segmenter -i - -d 10 -p outputdir/prefix -m outputdir/output.m3u8 -u http://domain.com
Either wget or curl will likely already be installed on your system.

VLC recording rtsp stream

I have a problem with recording rtsp stream with VLC player. Actually my method works in MacOS X, but doesn't in Windows. Command line:
vlc -vvv rtsp://admin:admin#192.168.0.151/live/h264/ --sout="#transcode{vcodec=mp4v,vfilter=canvas{width=800,height=600}}:std{access=file,mux=mp4,dst=C:\123.mp4}"
On MacOS it works fine, but under Windows it creates unreadable file. MediaInfo output:
General
Complete name : C:\123.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 1.08 MiB
Any suggestions?
Seems like your destination URL is not correct. Try this:
vlc -vvv rtsp://admin:admin#192.168.0.151/live/h264/ --sout="#transcode{vcodec=mp4v,vfilter=canvas{width=800,height=600}}:std{access=file,mux=mp4,dst=C:\\123.mp4}"
For Linux users, ffmpeg alone works straight away.
If you want to watch the stream while recording, write to a .mkv instead of a .mp4.
This example will overwrite the file video.mp4 in your home folder without asking due to the -y param, and the original codecs are kept.
ffmpeg -i rtsp://192.168.42.1/live -vcodec copy -acodec copy -y ~/video.mp4
NB: This example url is for an Ambarella Xiaomi Mijia 4K camera, like many wifi ip cameras, you have to activate the stream via telnet first, for this particular model the command to be sent before reading the stream via rtsp://:
echo '{"msg_id":257,"token":0}' | telnet 192.168.42.1 7878

VLC screen:// wont produce a file using :sout=

Why won't this produce a file? It does everything right but saving to an actual file .. I am using Linux, Vlc 1.1.9, compiled without skins2, qt or ncurses interfaces...
vlc :sout=#transcode{vcodec=mp4,acodec=mp4a,vb=800,scale=1}:std{access=file,mux=mp4,dst="~/file.mp4"} screen:// screen-fps=12 screen-caching=100
Note this also does the same thing - shows the screen:// fine, but will not output to a file:
vlc :sout=#transcode{vcodec=h264,acodec=none,vb=800}:std{access=file,mux=avi,dst="/root/file.avi"} screen:// screen-fps=12 screen-caching=100
Try this
vlc -vvv (PORT (UDP, HTTP)) --ts-dump-file video.ts and add more commands
vlc -vvv (PORT (UDP, HTTP)) --sout-all file/ogg,mpg,ts:filename and add more commands
Thats above code shuld work!

Resources