Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.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
Video streaming h.264 rtsp视频流在VLC中的录制_Video Streaming_Vlc_Video Capture - Fatal编程技术网

Video streaming h.264 rtsp视频流在VLC中的录制

Video streaming h.264 rtsp视频流在VLC中的录制,video-streaming,vlc,video-capture,Video Streaming,Vlc,Video Capture,我尝试在Windows中使用VLC命令行从IP摄像机捕获并记录到文件rtsp视频流(h.264) 我可以使用以下简单方式查看流: vlc -vvv rtsp://10.1.5.228:554/live.sdp 而且每次都有效。但是,当我尝试录制30秒的视频时,使用 vlc -vvv rtsp://10.1.5.228:554/live.sdp --sout file/mp4:test.mp4 --run-time=30 vlc://quit 结果是不稳定的-有时它实际上记录了视频(然后它的

我尝试在Windows中使用VLC命令行从IP摄像机捕获并记录到文件rtsp视频流(h.264)

我可以使用以下简单方式查看流:

vlc -vvv rtsp://10.1.5.228:554/live.sdp 
而且每次都有效。但是,当我尝试录制30秒的视频时,使用

vlc -vvv rtsp://10.1.5.228:554/live.sdp --sout file/mp4:test.mp4 --run-time=30 vlc://quit
结果是不稳定的-有时它实际上记录了视频(然后它的大小约为5 MB),但大多数情况下它只创建了几乎为空的mp4文件(它总是有713字节)


我认为它可能与h.264帧间压缩(由相机编码)有一些共同之处,但问题是:如何解决这个问题并在每次尝试时记录流。

这看起来就像是将rtsp流转储到一个文件中,可能会出错。试着把你的灵魂链改成这样。替换环境的X和路径

 vlc -vvv -I dummy rtsp://10.1.5.228:554/live.sdp --sout='#transcode{venc=x264{aud,profile=baseline,level=30,no-cabac},vcodec=h264,vb=800,width=XXX,height=XXX,fps=24.0}:std{mux=mp4,dst="/Your/Path/To/recordings/recording_XXX.mp4",access=file}' --network-caching=3000
简单地将流转储到文件中如下所示:

 vlc -vvv -I dummy rtsp://10.1.5.228:554/live.sdp --sout='#standard{access=file,mux=mp4,dst=/Your/Path/recording.mp4}'

这看起来像是简单地将rtsp流转储到一个文件中,这很容易出错。试着把你的灵魂链改成这样。替换环境的X和路径

 vlc -vvv -I dummy rtsp://10.1.5.228:554/live.sdp --sout='#transcode{venc=x264{aud,profile=baseline,level=30,no-cabac},vcodec=h264,vb=800,width=XXX,height=XXX,fps=24.0}:std{mux=mp4,dst="/Your/Path/To/recordings/recording_XXX.mp4",access=file}' --network-caching=3000
简单地将流转储到文件中如下所示:

 vlc -vvv -I dummy rtsp://10.1.5.228:554/live.sdp --sout='#standard{access=file,mux=mp4,dst=/Your/Path/recording.mp4}'

感谢您的快速响应!不幸的是,在这种形式下,它仍然不起作用。我在哪里可以找到您使用的参数(即配置文件、级别、cabac、vb)的解释,以及如何检查我应该使用哪些值?(1)您可以发布VLC的日志输出以查看发生了什么?(2) 您可以通过在命令行中键入
vlc-H
找到所有参数的解释-有一个在线版本,但我怀疑它是最新的:(例如
profile
定义要使用的H.264配置文件,如基线、主、高等)。日志文件中有两个有关错误的信息:(1)
核心错误:调用了ES\u OUT\u RESET\u PCR
(2)
核心错误:由于错误而无法继续流式处理
。我把整个日志文件都放进去了。你能用不同的
--网络缓存
参数设置来尝试这个命令吗。缓存值以毫秒为单位设置。我用新命令更新了答案。还可以尝试使用不同的值进行
--实时缓存
。我花了很多时间,但仍然一无所获。有时它是有效的,但大多数情况下它不是。。。但每次我在GUI模式下播放同一个流并单击“录制”按钮时,输出的视频都是完美的。是否有任何可从命令行执行的函数,它与此按钮的功能完全相同?感谢您的快速响应!不幸的是,在这种形式下,它仍然不起作用。我在哪里可以找到您使用的参数(即配置文件、级别、cabac、vb)的解释,以及如何检查我应该使用哪些值?(1)您可以发布VLC的日志输出以查看发生了什么?(2) 您可以通过在命令行中键入
vlc-H
找到所有参数的解释-有一个在线版本,但我怀疑它是最新的:(例如
profile
定义要使用的H.264配置文件,如基线、主、高等)。日志文件中有两个有关错误的信息:(1)
核心错误:调用了ES\u OUT\u RESET\u PCR
(2)
核心错误:由于错误而无法继续流式处理
。我把整个日志文件都放进去了。你能用不同的
--网络缓存
参数设置来尝试这个命令吗。缓存值以毫秒为单位设置。我用新命令更新了答案。还可以尝试使用不同的值进行
--实时缓存
。我花了很多时间,但仍然一无所获。有时它是有效的,但大多数情况下它不是。。。但每次我在GUI模式下播放同一个流并单击“录制”按钮时,输出的视频都是完美的。是否有任何可从命令行执行的函数,与此按钮的功能完全相同?