我正在尝试使用FFmpeg.AutoGen库从我的ip摄像机读取/解码RTSP流。当ffmpeg试图通过UDP连接时,服务器会以错误的方式进行响应。当我试图通过ffmpeg exe连接时,也会发生同样的情况:
ffmpeg -i rtsp://<url...> -vcodec h264 c:\out.mp4
但是,当使用-rtsp_transport tcp时,每件事都能正常工作:
ffmpeg -rtsp_transport tcp -i rtsp://<url...> -vcodec h264 c:\out.mp4
有人能建议如何在-rtsp_transport中启用这样的选项(一般情况下,或者特别是FFmpeg.AutoGen tcp选项)?
发布于 2020-02-13 00:49:00
首先,您应该像下面这样设置AVDic流的值。
AVDictionary* opts = null;
ffmpeg.av_dict_set(&opts, "rtsp_transport", "tcp", 0);其次,您应该修改“VideoStreamDecoder.cs”中的一些源代码,如下所示。
public VideoStreamDecoder(string url,AVDictionary* opts, AVHWDeviceType HWDeviceType = AVHWDeviceType.AV_HWDEVICE_TYPE_NONE)
....
ffmpeg.avformat_open_input(&pFormatContext, url, null, &opts);然后您的代码将运行TCP (如果您使用RTSP损坏了图像,上面的代码也会工作)
https://stackoverflow.com/questions/59094712
复制相似问题