我现在正在使用Raspbian上的raspivid和配备PinoIR相机模块的覆盆子pi。
我几乎完成了设置,并找到了FFmpeg 3.1.1的预编译版本,通过以下命令试验流式传输到youtube直播流:
raspivid -o - -t 0 -vf -hf -fps 30 -b 6000000 | ffmpeg -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/<SESSION>
我是否可以使用任何参数流式传输到本地计算机(例如通过读取流的VLC客户端)?
我已经用cvlc实现了另一个bash:
cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}':demux=h264
但由于输入摄像机被系统锁定,因此无法同时执行两个bas。
所以,我查看了ffmpeg文档并在多个输出上找到了一个有趣的线程:https://trac.ffmpeg.org/wiki/Creating%20multiple%20outputs。 然后,我尝试了管道进程和另一个ffmpeg调用inital命令:
raspivid -o - -t 0 -vf -hf -fps 30 -b 6000000 | ffmpeg -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/<SESSION> | ffmpeg -f h264 -i - -vcodec copy -f rtsp -rtsp_transport tcp rtsp://localhost:8888/live.sdp
它似乎有语法错误,也许它不是实现此目的的最佳方式。你能不能让我走上正轨?
谢谢,祝你晚安!
尼古拉斯