一、安裝FFmpeg
要使用FFmpeg推流RTSP,需要首先安裝FFmpeg。這裡我們提供一種在Ubuntu上安裝FFmpeg的方法:
sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt-get update
sudo apt-get install ffmpeg
執行完以上命令後,系統會自動下載安裝FFmpeg.
二、推流本地文件
使用FFmpeg向RTSP服務器推送本地文件是非常簡單的。下面是將本地文件推流到RTSP的命令行示例:
ffmpeg -re -i test.mp4 -f rtsp rtsp://localhost:5554/live.sdp
其中,test.mp4是要推流的本地文件名,localhost:5554是RTSP服務器地址和端口,live.sdp是要在RTSP服務器上創建的會話名稱。
在這個例子中,-re選項是告訴FFmpeg以15fps的速度進行實時流傳輸。-i 則是傳遞輸入文件的路徑和名稱。
三、推流網絡流
如果你想推送網絡流,就需要使用FFmpeg的network協議。下面是推流到RTSP服務器的命令行示例:
ffmpeg -i http://localhost/stream -f rtsp rtsp://localhost:5554/live.sdp
其中,http://localhost/stream是網絡流的URL。在這個示例中,我們採用的是http協議傳輸的網絡流。
四、推流攝像頭
如果你想從攝像頭推送流則需要使用v4l2數據源。
使用以下命令行示例將從設備/dev/video0中的流推流到RTSP服務器:
ffmpeg -f v4l2 -framerate 25 -video_size 640x480 -i /dev/video0 -f rtsp rtsp://localhost:5554/live.sdp
在命令中,-framerate表示採集視頻的幀速率,-video_size控制採集視頻的尺寸,/dev/video0表示要使用的攝像頭設備。
五、推流屏幕
如果想要從屏幕推流,則需要使用x11grab源。
以下是推流x11grab源到RTSP服務器的命令行示例:
ffmpeg -f x11grab -framerate 25 -video_size 1024x768 -i :0.0 -f rtsp rtsp://localhost:5554/live.sdp
在這個示例中,-i:0.0表示要捕捉的屏幕的0號顯示器,-framerate是為捕捉的屏幕幀速率,-video_size控制捕捉的屏幕尺寸。
結論
通過以上示例,我們可以看到使用FFmpeg向RTSP服務器推送不同來源的流是多麼簡單。只需使用不同的協議和數據源,我們就可以推送本地文件,網絡流,攝像頭和屏幕流到RTSP服務器。
原創文章,作者:OILDF,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/332638.html