ffmpeg 多个 rtsp 摄像机到 sigle 流到 youtube
ffmpeg multiple rtsp cameras into sigle stream to youtube
我有两个 rtsp 网络摄像机 (dlink),我想在一个视频输出中组合(合并)2 个流并将其放入 yutube(直播)。
我的第一步没问题,我的命令是:
ffmpeg
-i "rtsp://xxxxxx:xxxxxx@192.168.1.164/live2.sdp"
-i "rtsp://xxxxxx:xxxxxx@192.168.1.164/live2.sdp"
-filter_complex "
nullsrc=size=1600x448 [base];
[0:v] setpts=PTS-STARTPTS, scale=800x448 [upperleft];
[1:v] setpts=PTS-STARTPTS, scale=800x448 [upperright];
[base][upperleft] overlay=shortest=1 [base];
[base][upperright] overlay=shortest=1:x=800 [base]"
-map [base] test.mp4
我的test.mp4视频输出没问题。
之后,我尝试使用此命令将此视频发送到 YouTube 直播:
ffmpeg
-i "rtsp://xxxxxx:xxxxxx@192.168.1.164/live2.sdp"
-i "rtsp://xxxxxx:xxxxxx@192.168.1.164/live2.sdp"
-filter_complex "
nullsrc=size=1600x448 [base];
[0:v] setpts=PTS-STARTPTS, scale=800x448 [upperleft];
[1:v] setpts=PTS-STARTPTS, scale=800x448 [upperright];
[base][upperleft] overlay=shortest=1 [base];
[base][upperright] overlay=shortest=1:x=800 [base]"
-map [base] -f flv "rtmp://a.rtmp.youtube.com/live2/xxx-xxxx-xxxx-xxxx"
但是youtube 流收不到数据。 (它似乎启动但看不到图像)。我认为是音频问题。但是我不知道怎么插入假音频(我不要音频)。
有解决办法吗?
谢谢,
马蒂亚
试试这个,使用虚拟音频
ffmpeg
-i "rtsp://xxxxxx:xxxxxx@192.168.1.164/live2.sdp"
-i "rtsp://xxxxxx:xxxxxx@192.168.1.164/live2.sdp"
-f lavfi -i anullsrc
-filter_complex "
[0:v] setpts=PTS-STARTPTS,scale=800x448,setsar=1[upperleft];
[1:v] setpts=PTS-STARTPTS, scale=800x448,setsar=1[upperright];
[upperleft][upperright]hstack[base]"
-map [base] -map 2 -f flv "rtmp://a.rtmp.youtube.com/live2/xxx-xxxx-xxxx-xxxx"
我有两个 rtsp 网络摄像机 (dlink),我想在一个视频输出中组合(合并)2 个流并将其放入 yutube(直播)。
我的第一步没问题,我的命令是:
ffmpeg
-i "rtsp://xxxxxx:xxxxxx@192.168.1.164/live2.sdp"
-i "rtsp://xxxxxx:xxxxxx@192.168.1.164/live2.sdp"
-filter_complex "
nullsrc=size=1600x448 [base];
[0:v] setpts=PTS-STARTPTS, scale=800x448 [upperleft];
[1:v] setpts=PTS-STARTPTS, scale=800x448 [upperright];
[base][upperleft] overlay=shortest=1 [base];
[base][upperright] overlay=shortest=1:x=800 [base]"
-map [base] test.mp4
我的test.mp4视频输出没问题。
之后,我尝试使用此命令将此视频发送到 YouTube 直播:
ffmpeg
-i "rtsp://xxxxxx:xxxxxx@192.168.1.164/live2.sdp"
-i "rtsp://xxxxxx:xxxxxx@192.168.1.164/live2.sdp"
-filter_complex "
nullsrc=size=1600x448 [base];
[0:v] setpts=PTS-STARTPTS, scale=800x448 [upperleft];
[1:v] setpts=PTS-STARTPTS, scale=800x448 [upperright];
[base][upperleft] overlay=shortest=1 [base];
[base][upperright] overlay=shortest=1:x=800 [base]"
-map [base] -f flv "rtmp://a.rtmp.youtube.com/live2/xxx-xxxx-xxxx-xxxx"
但是youtube 流收不到数据。 (它似乎启动但看不到图像)。我认为是音频问题。但是我不知道怎么插入假音频(我不要音频)。
有解决办法吗?
谢谢, 马蒂亚
试试这个,使用虚拟音频
ffmpeg
-i "rtsp://xxxxxx:xxxxxx@192.168.1.164/live2.sdp"
-i "rtsp://xxxxxx:xxxxxx@192.168.1.164/live2.sdp"
-f lavfi -i anullsrc
-filter_complex "
[0:v] setpts=PTS-STARTPTS,scale=800x448,setsar=1[upperleft];
[1:v] setpts=PTS-STARTPTS, scale=800x448,setsar=1[upperright];
[upperleft][upperright]hstack[base]"
-map [base] -map 2 -f flv "rtmp://a.rtmp.youtube.com/live2/xxx-xxxx-xxxx-xxxx"