ffmpeg推流及python管道控制ffmpeg推流
生活随笔
收集整理的這篇文章主要介紹了
ffmpeg推流及python管道控制ffmpeg推流
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
------------python算法處理后再進行推流-------------------------------
1、先搭建流媒體服務器
方式一:見Windows+nginx+rtmp+OBS文檔,或用linux+nginx+rtmp
方式二:見SRS4.0.85流媒體服務器搭建
2、安裝ffmpeg并添加到環(huán)境變量(以windows為例)
Download FFmpeg將文件bin目錄路徑添加到環(huán)境變量中,在cmd/終端中輸入ffmpeg,出現(xiàn)以下內(nèi)容說明已添加好
(windows)
(linux)
3、python通過管道控制ffmpeg推流
經(jīng)過無數(shù)次配置命令行驗證,目前以下兩種有效。目前經(jīng)測試,使用ffmpeg推流命令復雜且視頻畫面不穩(wěn),容易出現(xiàn)各種各樣問題,沒有OBS好使?
import subprocess as sp import cv2 rtmpUrl = 'rtmp://192.168.3.39:1935/live/livestream'#下面這個可以通過srs服務器推webRTC流command = ['ffmpeg','-y', '-an','-f', 'rawvideo','-vcodec', 'rawvideo','-pix_fmt', 'bgr24','-s', '1280x720','-r', '25','-i', '-','-c:v', 'libx264','-pix_fmt', 'yuv420p','-preset', 'ultrafast','-flvflags', 'no_duration_filesize','-f', 'flv',rtmpUrl]#這個可通過nginx+rtmp服務器推流 command = ['ffmpeg','-y','-f', 'rawvideo','-vcodec', 'rawvideo','-pix_fmt', 'bgr24','-s', "1280x720",'-i', '-','-c:v', 'libx264','-preset', 'faster','-f', 'flv',rtmpUrl]# 下面這個可以通過srs推流webRTC command = ['ffmpeg','-re','-i', rtmp_url,'-vcodec', 'copy','-acodec', 'copy','-f','flv','-flvflags','no_duration_filesize',rtmpUrl]pipe = sp.Popen(command,stdin=sp.PIPE) ? while (cap.isOpened()):ret, frame = cap.read()if ret:pipe.stdin.write(frame.tostring())else:break ? cap.release() pipe.terminate()---------------ffmpeg推流本系統(tǒng)usb攝像頭直接命令--------------
引用博客:地址
1、Linux
1、ls -ltrh /dev/video* #獲取攝像頭名稱Linux下用 FFMPEG 采集 usb攝像頭視頻 和 攝像頭內(nèi)置麥克風音頻 到RTMP服務ffmpeg -f video4linux2 -qscale 10 -r 12 -s 640x480 -i /dev/video0 -f alsa -i hw:1 -ab 16 -ar 22050 -ac 1 -f mp3 -f flv rtmp://127.0.0.1/rtmpsvr/rtmp1./ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -f flv rtmp://127.0.0.1:1935/live/live首先說一下推流,主要使用ffmpeg命令進行本地攝像頭的推流,為了實現(xiàn)首屏秒開使用-g設(shè)置gop大小,同時使用-b降低網(wǎng)絡(luò)負載,保證流暢度。2、ffmpeg -r 30 -i /dev/video0 -vcodec h264 -max_delay 100 -f flv -g 5 -b 700000 rtmp://219.216.87.170/live/test12、windows
1、ffmpeg -list_devices true -f dshow -i dummy#獲取攝像頭名稱2、 ffmpeg -f dshow -i video="攝像頭名稱" -vcodec libx264 -acodec copy -preset:v ultrafast -tune:v zerolatency -f flv rtmp://116.xxx.xxx.xxx:1935/ros/ros_videoffmpeg -r 30 -f vfwcap -i 0 -vcodec h264 -max_delay 100 -f flv -g 5 -b 700000 rtmp://219.216.87.170/live/test1ffmpeg -r 30 -f dshow -i video="1.3M HD WebCam" -vcodec h264 -max_delay 100 -f flv -g 5 -b 700000 rtmp://219.216.87.170/live/tes總結(jié)
以上是生活随笔為你收集整理的ffmpeg推流及python管道控制ffmpeg推流的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【音乐理论】音与音高 ( 音 | 乐音体
- 下一篇: ffmpeg推流