ffmpeg推拉流 视频合成

ffmpeg推拉流 视频合成 多路合并…

推拉流指令

ffmpeg -re  -rtsp_transport tcp -i "rtsp://admin:**********/h264/ch1/main/av_stream" -f flv -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 "rtmp://localhost:1935/live/test4"

ffmpeg视频合并

ffmpeg -i E:\\ffmpeg_server\\ffmpeg-win64-static\\bin\\one1.mp4 -i E:\\ffmpeg_server\\ffmpeg-win64-static\\bin\\one2.mp4 -i E:\\ffmpeg_server\\ffmpeg-win64-static\\bin\\one3.mp4 -i E:\\ffmpeg_server\\ffmpeg-win64-static\\bin\\one4.mp4 -filter_complex "[0:v]pad=iw*2:ih*2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=0:h[c];[c][3:v]overlay=w:h" E:\\ffmpeg_server\\ffmpeg-win64-static\\bin\\out.mp4

多路合并推流

ffmpeg -re  -rtsp_transport tcp -i "rtsp://admin:[email protected]:554/h264/ch1/main/av_stream" -re  -rtsp_transport tcp -i "rtsp://admin:[email protected]:554/h264/ch1/main/av_stream" -re  -rtsp_transport tcp -i "rtsp://admin:[email protected]:554/h264/ch1/main/av_stream" -re  -rtsp_transport tcp -i "rtsp://admin:[email protected]:554/h264/ch1/main/av_stream" -filter_complex "[0:v]pad=iw*2:ih*2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=0:h[c];[c][3:v]overlay=w:h" -f flv -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 "rtmp://localhost:1935/live/test"

测试(失败)

ffmpeg -re -i "rtmp://localhost:1935/live/test" -re -i "rtmp://localhost:1935/live/test2" -re -i "rtmp://localhost:1935/live/test3"  -re -i "rtmp://localhost:1935/live/test4" -filter_complex "[0:v]pad=iw*2:ih*2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=0:h[c];[c][3:v]overlay=w:h" -f flv -vcodec libx264 "rtmp://localhost:1935/live/test5"

//ffmpeg合并两路rtmp流并推送

ffmpeg -i “rtmp://ip:port/firststream” -i “rtmp://ip:port/secondstream” -filter_complex overlay=20:16 -f flv “rtmp://ip:port/addstream”
//overlay=x:y 
//这里x和y表示距离左上角的坐标偏移

ffmpeg实现四路rtmp流的合并

ffmpeg 
-i "rtmp://localhost:1935/live/test1" 
-i "rtmp://localhost:1935/live/test2" 
-i "rtmp://localhost:1935/live/test3" 
-i "rtmp://localhost:1935/live/test4" 
-filter_complex 
"nullsrc=size=640x480 [base];[0:v] setpts=PTS-STARTPTS, scale=320x240 [upperleft]; [1:v] setpts=PTS-STARTPTS, scale=320x240 [upperright];[2:v] setpts=PTS-STARTPTS, scale=320x240 [lowerleft];[3:v] setpts=PTS-STARTPTS, scale=320x240 [lowerright];[base][upperleft] overlay=shortest=1 [tmp1];[tmp1][upperright] overlay=shortest=1:x=320 [tmp2]; [tmp2][lowerleft] overlay=shortest=1:y=240 [tmp3]; [tmp3][lowerright] overlay=shortest=1:x=320:y=240" -f flv "rtmp://localhost:1935/live/test"

整体的逻辑是 : ffmpeg -i 多路流 -filter_complex 合并参数 -f flv 合并后的一路流

猜你喜欢

转载自blog.csdn.net/qq_41257365/article/details/88795191