1 用ffmpeg 推音視頻流
./ffmpeg -f dshow -i video="HP Wide Vision HD Camera" -f dshow -i audio="麥克風(fēng)陣列 (Realtek High Definition Audio)" -rtbufsize 100M -max_delay 100 -pix_fmt yuv420p -tune zerolatency -c:v libx264 -crf 18 -s 1280x720 -preset ultrafast -r 30 -g 30 -profile:v baseline -level 3.0 -acodec aac -f flv rtmp://172.16.0.28:1935/live/test
命令中各個(gè)參數(shù)的含義解釋:
- `-f dshow`: 指定音視頻輸入設(shè)備為DirectShow。
- `-i video="HP Wide Vision HD Camera"`: 指定視頻輸入設(shè)備為名為"HP Wide Vision HD Camera"的攝像頭。
- `-f dshow`: 指定音頻輸入設(shè)備為DirectShow。
- `-i audio="麥克風(fēng)陣列 (Realtek High Definition Audio)"`: 指定音頻輸入設(shè)備為名為"麥克風(fēng)陣列 (Realtek High Definition Audio)"的麥克風(fēng)。
- `-rtbufsize 100M`: 設(shè)置實(shí)時(shí)緩沖大小為100MB。
- `-max_delay 100`: 設(shè)置最大延遲為100毫秒。
- `-pix_fmt yuv420p`: 設(shè)置輸出像素格式為yuv420p。
- `-tune zerolatency`: 優(yōu)化編碼設(shè)置以實(shí)現(xiàn)低延遲。
- `-c:v libx264`: 指定視頻編碼器為libx264。
- `-crf 18`: 設(shè)置視頻質(zhì)量,值越小質(zhì)量越高。
- `-s 1280x720`: 設(shè)置輸出視頻分辨率為1280x720。
- `-preset ultrafast`: 設(shè)置編碼速度為ultrafast,犧牲壓縮效率以提高編碼速度。
- `-r 30`: 設(shè)置輸出視頻的幀率為30幀/秒。
- `-g 30`: 設(shè)置關(guān)鍵幀間隔為30幀。
- `-profile:v baseline`: 設(shè)置視頻編碼器的profile為baseline。
- `-level 3.0`: 設(shè)置視頻編碼器的level為3.0。
- `-acodec aac`: 指定音頻編碼器為AAC。
- `-f flv`: 指定輸出格式為FLV。
- `rtmp://172.16.0.28:1935/live/test`: 指定輸出目標(biāo)為RTMP服務(wù)器上的地址"rtmp://172.16.0.28:1935/live/test"。
2 用ffmpeg 推桌面流
./ffmpeg -f gdigrab -thread_queue_size 1024 -rtbufsize 10M -framerate 30 -offset_x 0 -offset_y 0 -draw_mouse 1 -i desktop -rtbufsize 100M -max_delay 100 -pix_fmt yuv420p -tune zerolatency -c:v libx264 -crf 18 -preset ultrafast -r 30 -g 30 -s 1280x720 -profile:v baseline -level 3.0 -acodec aac -f flv rtmp://172.16.0.28:1935/live/test2
各個(gè)參數(shù)的含義解釋:
- `-f gdigrab`: 指定視頻輸入設(shè)備為GDI屏幕抓取。
- `-thread_queue_size 1024`: 設(shè)置線程隊(duì)列的最大大小為1024。
- `-rtbufsize 10M`: 設(shè)置實(shí)時(shí)緩沖大小為10MB。
- `-framerate 30`: 設(shè)置輸入幀率為30幀/秒。
- `-offset_x 0`: 設(shè)置屏幕捕捉的水平偏移量為0。
- `-offset_y 0`: 設(shè)置屏幕捕捉的垂直偏移量為0。
- `-draw_mouse 1`: 允許繪制鼠標(biāo)光標(biāo)。
- `-i desktop`: 指定屏幕捕捉作為輸入。
- `-rtbufsize 100M`: 設(shè)置實(shí)時(shí)緩沖大小為100MB。
- `-max_delay 100`: 設(shè)置最大延遲為100毫秒。
- `-pix_fmt yuv420p`: 設(shè)置輸出像素格式為yuv420p。
- `-tune zerolatency`: 優(yōu)化編碼設(shè)置以實(shí)現(xiàn)低延遲。
- `-c:v libx264`: 指定視頻編碼器為libx264。
- `-crf 18`: 設(shè)置視頻質(zhì)量,值越小質(zhì)量越高。
- `-preset ultrafast`: 設(shè)置編碼速度為ultrafast,犧牲壓縮效率以提高編碼速度。
- `-r 30`: 設(shè)置輸出視頻的幀率為30幀/秒。
- `-g 30`: 設(shè)置關(guān)鍵幀間隔為30幀。
- `-s 1280x720`: 設(shè)置輸出視頻分辨率為1280x720。
- `-profile:v baseline`: 設(shè)置視頻編碼器的profile為baseline。
- `-level 3.0`: 設(shè)置視頻編碼器的level為3.0。
- `-acodec aac`: 指定音頻編碼器為AAC。
- `-f flv`: 指定輸出格式為FLV。
- `rtmp://172.16.0.28:1935/live/test2`: 指定輸出目標(biāo)為RTMP服務(wù)器上的地址"rtmp://172.16.0.28:1935/live/test2"。
3 用ffplay拉RTMP流
.\ffplay.exe -fflags nobuffer rtmp://172.16.0.28:1935/live/test
參數(shù)的含義解釋:
- `.\ffplay.exe`: 啟動FFplay播放器。
- `-fflags nobuffer`: 禁用緩沖模式,即實(shí)時(shí)播放模式,播放器立即顯示接收到的畫面,而不是等待緩沖大量數(shù)據(jù)再播放。
- `rtmp://172.16.0.28:1935/live/test`: 指定RTMP服務(wù)器上的流地址為"rtmp://172.16.0.28:1935/live/test",即要播放的視頻流的地址。
4 用ffplay拉RTSP 流
.\ffplay.exe -rtsp_transport tcp rtsp://172.16.0.28:8554/live/test
.\ffplay.exe -fflags nobuffer -rtsp_transport tcp rtsp://172.16.0.28:8554/live/test
各個(gè)參數(shù)的含義解釋:
- `.\ffplay.exe`: 啟動FFplay播放器。
- `-fflags nobuffer`: 禁用緩沖模式,即實(shí)時(shí)播放模式,播放器立即顯示接收到的畫面,而不是等待緩沖大量數(shù)據(jù)再播放。
- `-rtsp_transport tcp`: 指定RTSP傳輸協(xié)議為TCP。RTSP是一種用于流媒體傳輸?shù)膮f(xié)議,通常使用UDP或TCP進(jìn)行傳輸,此處通過TCP傳輸。
- `rtsp://172.16.0.28:8554/live/test`: 指定RTSP地址為"rtsp://172.16.0.28:8554/live/test",即要播放的RTSP流的地址。
5 用WebRTC播放視頻流,延遲小
在瀏覽器上訪問:
https://172.16.0.28:8443/webrtc/
文章來源:http://www.zghlxwxcb.cn/news/detail-691461.html
用push表示推流,推流成功后,其他人可以用WebRTC播放,或者用vlc、ffplay播放文章來源地址http://www.zghlxwxcb.cn/news/detail-691461.html
到了這里,關(guān)于ZLMediaKit 各種推拉流的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!