首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将IP摄像机视频流转换为视频文件?

如何将IP摄像机视频流转换为视频文件?
EN

Stack Overflow用户
提问于 2014-11-12 09:16:41
回答 2查看 4K关注 0票数 2

我有一个URL (<ip>/ipcam/mpeg4.cgi),它指向通过以太网连接的IP摄像头。访问URL会产生无限的视频流(可能带有音频)数据。

我想把这些数据存储到一个视频文件中,然后用视频播放器播放它(HTML5 5的video标记是首选的播放器)。

但是,一种简单的将流数据保存到.mp4文件中的简单方法是行不通的。

我查看了该文件,下面是我所看到的(单击放大):

结果是,有一些HTML标题,我进一步使用二进制编辑工具手动排除了这些标题,但是没有一个播放器可以播放该文件的其余部分。

HTML标题是:

代码语言:javascript
复制
--myboundary
Content-Type: image/mpeg4
Content-Length: 76241
X-Status: 0
X-Tag: 1693923
X-Flags: 0
X-Alarm: 0
X-Frametype: I
X-Framerate: 30
X-Resolution: 1920*1080
X-Audio: 1
X-Time: 2000-02-03 02:46:31
alarm: 0000

我的问题现在很清楚,我想要任何帮助或建议。我怀疑,我必须自己根据上面的值手动创建一些MP4头,但是,我无法理解格式描述,比如这些

我的IP相机上有以下视频流设置(单击以放大):

我也可以使用ffmpeg工具,但是无论我如何尝试将参数混合到程序中,它都会告诉我这个错误:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-14 09:05:15

看起来您的服务器正在发送附件B字节流格式的H.264编码的“rawvideo”。

可以使用以下命令行将其重新格式化为.mp4:

代码语言:javascript
复制
ffmpeg -i {input file} -f rawvideo -bsf h264_mp4toannexb -vcodec copy out.mp4

将音频/视频流保存到文件中并不是一件容易的工作。如果它只是视频,使用MPEG2 TS格式是最简单的方法。

对于.mp4流,请考虑-movflags faststart -> 推荐用于视频编码的最佳质量/性能H264编码器?

**更新:可以省略-bsf h264_mp4toannexb选项,我不确定。

票数 2
EN

Stack Overflow用户

发布于 2014-11-13 13:43:42

嗯,这并不像看上去那么简单:

1) HTML5 <video>标记对MP4流有一些要求--它必须是分段的(这意味着描述长度和其他数据的内部数据原子必须位于流的开头)。大多数MP4视频文件都没有这个特性,所以您的选择是用FFmpeg或其他工具重新格式化它们(参见),然后您实际上可以按原样提供文件。

2) Nginx有一个插件,它允许流MP4文件,我没有使用它,但它可能对您有用,因为我猜它会处理内部事务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26883207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档