我实际上是在进行视频流传输,目标是从摄像机中获取RTSP流并将其转换为FLV文件。这是我尝试过的:
$GSTREAMER rtspsrc location=$RTSP_SOURCE ! rtpbin ! rtph264depay ! h264parse \
! avdec_h264 ! video-x/raw,width=500,height=500 ! x264enc ! h264parse ! flvmux ! filesink location=$FLV_SINK
管道显示错误,表明它不能将avdec_h264
与x264enc
一起使用,avdec_h264或x264enc是否可以替代使用?还是有其他替代方法可以做到这一点。
删除video-x/raw,width=500,height=500
。没有视频比例元素,您将无法像这样指定视频分辨率。
如果需要缩放,请添加videoscale
元素。确保您的输出尺寸与编解码器兼容,并且该元素可以处理。
为了安全起见,选择宽度和高度为16的倍数。
$GSTREAMER rtspsrc location=$RTSP_SOURCE ! rtpbin ! rtph264depay ! h264parse \
! avdec_h264 ! videoscale ! video-x/raw,width=640,height=640 ! x264enc ! h264parse ! flvmux ! filesink location=$FLV_SINK