将 VLC IP 摄像机流提取为原始 H264 数据

将 VLC IP 摄像机流提取为原始 H264 数据

我是第一次从 VLC 流式传输到文件,但我一直在互联网上搜索我想做什么,但没有找到任何相关信息。我目前正在开发一个相机模拟器,它可以在播放过程中流式传输视频文件(因为它是一个模拟)。

摄像机本身通过 UDP 上的 RTSP 以 H264 VGA(640x480)进行流式传输。

基本上,我想做的是通过 VLC 保存真实相机的流(10 秒),以便模拟器随后可以使用此视频文件。在我们的模拟器中,来自 H264 流的所有视频文件的扩展名都是 H264(例如:)Stream1.h264

为了确保我的视频文件编码正确,我用来MediaInfo查看文件属性,但似乎无法获取想要的属性。

例如我尝试使用封装方法MPEG-TS,并得到了以下属性:

General 
ID : xxxxxxx 
Complete name : xxx 
Format : MPEG-TS 
Format/Info : This information doesn't appear, why?
File size : xx 
Duration : xx 

Format : AVC 
Format/Info : Advanced Video Codec 
Format profile : [email protected] 
Format settings, CABAC : Yes 
Format settings, ReFrames : 4 frames 

但我正在寻找的属性是:

General 
Complete name : xxx 
Format : AVC 
Format/Info : Advanced Video Codec 
File size : xx  

Format : AVC 
Format/Info : Advanced Video Codec 
Format profile : [email protected] 
Format settings, CABAC : No 
Format settings, ReFrames : 1 frame 

答案1

您始终可以从封装文件中提取原始 H.264 流。我建议封装为 MP4,然后您可以使用MP4盒去做:

mp4box -raw 1 video.mp4

这将创建文件video_track1.h264,其中应该符合您的要求。我尝试用我手头的一个文件来做这件事,结果如下 – 我认为这才是avc1您想要的表示形式:

一般的
全名:xxx
格式 :音频视频编码
格式/信息:高级视频编解码器
文件大小 : ...

视频
格式:AVC
格式/信息:高级视频编解码器
格式简介:[电子邮件保护]
格式设置,CABAC:是
格式设置,ReFrames:5帧

答案2

我们可以使用 openRTSP(用于记录 RTSP 媒体流的命令行程序)程序将 RTSP 流数据包存储到本地文件夹中。此程序有助于从源下载 RAW 流。

例如,给出示例命令从摄像机检索流并记录在本地文件夹中 ./openRTSP.exe rtsp://:554/h264/video.sdp?camera=1

注意:上述命令将流存储在.264 文件中。

来源:http://www.live555.com/openRTSP/

相关内容