vel*_*ian 6 video mp4 android video-encoding video-streaming
我正在尝试编写一个从Android手机上传视频的应用程序,因为它们是通过读取.mp4文件并在写入文件时上传字节来记录的.问题是,据我所知,在视频录制完成且视频文件已关闭之前,moov原子和其他一些类似的数据似乎没有被写入文件.是否有任何方法可以处理视频文件并在服务器端添加这些元数据
我已经看到像http://www.mattakis.com/blog/kisg/20090708/broadcasting-video-with-android-without-writing-to-the-file-system这样的链接,但他们只是简单地说明问题
因此,在录制完成后必须修复接收的流,或者必须由服务器处理原始视频/音频帧.
没有完全解释如何去做.
正如您所注意到的,在这种情况下很难使用 MP4 格式。我怀疑链接的博客文章没有详细介绍“修复”,因为它可能非常复杂。除了编写 mdat 框缺少的大小字段之外,您还需要生成 ftyp 和 moov 框。如果你真的需要一个终端到终端的MP4方案,ISO 14496-12和ISO 14496-14会告诉你,比你曾经想知道如何建立这些数据结构。
但是,您可能会发现更优雅的解决方案是使用实际上适合实时处理的格式。换句话说,在 Android 端,将视频流重新混合为实时格式并将其发送到服务器。在服务器端,您可以非常灵活地处理视频:您可以将整个视频重新混合成 MP4,您可以切片和切块,制作 10 秒的块,或其他任何内容。开源 Sipdroid 项目包含一些演示将实时视频重新混合到 RTP 的代码。(您可能更喜欢可靠的传输格式——基于 TCP 的 RTP 或其他格式——原理是相同的。)
| 归档时间: |
|
| 查看次数: |
2345 次 |
| 最近记录: |