ffmpeg 推送文件、采集设备、桌面图像到rtsp服务器

avatar
作者
筋斗云
阅读量:0

使用 ffmpeg 推送RTSP流涉及将媒体源(如本地文件、摄像头、屏幕捕获等)编码并发送至RTSP服务器。以下是一些常见的应用场景及其相应的 ffmpeg 命令示例:

1. 推送本地视频文件到RTSP服务器

 

sh

ffmpeg \   -re -i input_video.mp4 \   -c:v libx264 -preset veryfast -tune zerolatency \   -c:a aac -ar 48000 -ac 2 -ab 128k \   -f rtsp \   -rtsp_transport tcp \   rtsp://server_address:server_port/stream_name

参数解释:

  • -re: 使输入文件以实时速度读取,模拟直播行为。
  • -i input_video.mp4: 指定输入视频文件路径。
  • -c:v libx264 -preset veryfast -tune zerolatency: 使用H.264编码视频,选择快速预设以降低延迟,并针对低延迟优化。
  • -c:a aac -ar 48000 -ac 2 -ab 128k: 使用AAC编码音频,设定采样率、声道数和比特率。
  • -f rtsp: 指定输出格式为RTSP。
  • -rtsp_transport tcp: 使用TCP作为RTSP传输协议(也可以选择udpudp_multicast)。
  • rtsp://server_address:server_port/stream_name: RTSP服务器的地址、端口和流名。

2. 推送DirectShow设备(如摄像头)到RTSP服务器

 

sh

ffmpeg \   -f dshow -video_device_number N -i video="Video Capture Device Name" \   -c:v libx264 -preset veryfast -tune zerolatency \   -c:a aac -ar 48000 -ac 2 -ab 128k \   -f rtsp \   -rtsp_transport tcp \   rtsp://server_address:server_port/stream_name

参数解释:

  • -f dshow: 使用DirectShow框架捕获视频。
  • -video_device_number N: 如果有多个摄像头,指定设备编号(从0开始)。
  • -i video="Video Capture Device Name": 指定摄像头的名称(可通过ffmpeg -list_devices true -f dshow -i dummy列出可用设备)。
  • 其他编码、格式和RTSP服务器参数同上。

3. 屏幕捕获并推送至RTSP服务器(Windows平台)

 

sh

ffmpeg \   -f gdigrab -i desktop \   -c:v libx264 -preset veryfast -tune zerolatency \   -c:a aac -ar 48000 -ac 2 -ab 128k \   -f rtsp \   -rtsp_transport tcp \   rtsp://server_address:server_port/stream_name

参数解释:

  • -f gdigrab -i desktop: 使用GDI捕获整个桌面作为输入。
  • 其他编码、格式和RTSP服务器参数同上。

确保在运行这些命令之前,RTSP服务器(如EasyDarwin、VLC、Wowza等)已经在目标地址和端口上正确配置并运行。根据实际需求调整编码参数、RTSP服务器地址、端口和流名。如果服务器支持其它传输协议(如HTTP、HLS等),还可以利用ffmpeg进一步转推至这些协议。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!