ffmpeg用命令拉流是非常简单易用的,特别是对这种常见的摄像头的流:
rtsp://10.1.21.121:554/profile1
稍微复杂一点
rtsp://admin:a1234567@10.1.21.121:554/cam/realmonitor?channel=1&subtype=1
这些拉流并转码推送到rtmp的流媒体服务器上可以采用下面的简单命令:
ffmpeg -i rtsp://10.1.21.121:554/profile1 -an -r 25 -vcodec copy -f flv -y rtmp://10.1.21.100:1886/live/test123
但是最近遇到一个相对复杂一些的rtsp的流,需要添加一个参数才可以,流地址如下:
rtsp://182.43.123.112:554/pag://192.168.2.6:2930:C164225764310522109:0:MAIN:TCP?streamform=rtp&checkinfo=ewogICAidGltZSIgOiAiMjAxOTA3MjRUMjAxNDA2WiIsCiAgICJ1cmwiIDogInJ0c3A6Ly8xMTIuMzUuMjcuMTQzOjU1NC9wYWc6Ly8xOTIuMTY4LjIuNjo3MzAyOkMxNTQyMjM3NjEzMTAwMjU1MDk6MDpNQUlOOlRDUD9zdHJlYW1mb3JtPXJ0cCIKfQo%3D&idinfo=EAAAAAAQAAAmDIjKyV1vS668MhJZuk8G1q0sNh9SxqRNDkCgSXcItTBkSyvlvn0nJX1sFMZGziU%3D
推流时添加指定的通信格式即可:
ffmpeg -rtsp_transport tcp -i rtsp地址 -an -r 25 -vcodec copy -f flv -y rtmp地址