如何在FFmpeg.AutoGen中设置ffmpeg命令行选项

问题描述 投票:0回答:1

我正在尝试使用FFmpeg.AutoGen lib从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

有人可以建议如何在FFmpeg.AutoGen中启用此类选项(通常,或特别是-rtsp_transport tcp选项吗?

c# tcp ffmpeg udp rtsp
1个回答
0
投票

首先,您应该像下面那样设置AVDiconary的值。

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破坏了图片,上述代码也可以使用)

© www.soinside.com 2019 - 2024. All rights reserved.