Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从rtsp camera C保存.flv文件#_C#_Video_Ffmpeg_Video Streaming_Libvlc - Fatal编程技术网

C# 如何从rtsp camera C保存.flv文件#

C# 如何从rtsp camera C保存.flv文件#,c#,video,ffmpeg,video-streaming,libvlc,C#,Video,Ffmpeg,Video Streaming,Libvlc,我正在尝试使用FFmpeg.exe命令保存来自IP摄像头的流式rtsp视频,如下所示 ffmpeg -i rtsp://[source_url_full_file_name] -acodec copy -vcodec copy [local_target_file_name].flv 但要管理每个摄像头启动的所有进程非常困难,所以我决定使用一个嵌入式托管线程来完成同样的任务 我尝试了许多库和代码,但仍然没有结果 任何人都有一个代码或链接,可以使用C#来实现这一点,但不清楚什么不起作用。。。显示

我正在尝试使用FFmpeg.exe命令保存来自IP摄像头的流式
rtsp
视频,如下所示

ffmpeg -i rtsp://[source_url_full_file_name] -acodec copy -vcodec copy [local_target_file_name].flv
但要管理每个摄像头启动的所有进程非常困难,所以我决定使用一个嵌入式托管线程来完成同样的任务

我尝试了许多库和代码,但仍然没有结果


任何人都有一个代码或链接,可以使用
C#

来实现这一点,但不清楚什么不起作用。。。显示的FFmpeg命令是否未达到要求的“如何从rtsp摄像机保存.flv文件”???您真正的问题是“如何通过C#将FFmpeg作为外部进程运行?”您可以在其中获得ProcessID等吗?研究一下这个选项…我的问题不是这个命令有什么问题,我使用过它,而且非常努力,我处理过它,它很容易,但是这些过程的管理非常困难,我的问题是,如何在不调用任何外部应用程序(如ffmpeg.exeSo)的情况下从应用程序内部保存flv?使用C#代码,您当前可以从RTSP服务器接收相机数据?接收到的媒体的有效负载(解析RTP和UDP报头等后)是否为FLV格式?如果已经是FLV,那么只需将有效负载字节直接提取到bytearray中,并附加每个传入有效负载的字节,直到结束。将字节数组作为文件保存到磁盘(例如:
output.flv
)。。。如果要从头开始创建FLV,请查看RTSP是否以任何方式提供FLV数据,然后在IP/UDP/RTP头之后找到它。您应该找到类似
46 4C 56 01 05 00 00 09
的字节这是一个FLV头,因此您可以将这些字节写入磁盘或bytearray以存储FLV字节。。。如果您有原始h264帧,那么您必须制作FLV容器,并将每个h264帧打包在自己的FLV标记内(标记保存a/v数据),因此您需要(1)制作FLV标题(2)添加元数据标记(3)添加a/v配置标记(4)制作“视频”类型标记(11字节标题+h264字节+4字节页脚)。。。对每个h264帧重复步骤(4),直到您希望视频在此结束。我将尝试使用RTSP作为字节,并按照您提到的方式对其进行解析。。任何一个有链接的人都可以详细解释??