我读了 Elementary Stream 的内容维基百科 http://en.wikipedia.org/wiki/Elementary_stream。我正在使用的工具“Live555”需要“H.264 视频基本流文件”。因此,当从视频应用程序导出视频时,我是否必须选择特定的首选项来生成“Elementery Stream”?
如果您使用 ffmpeg,您可以使用类似于以下内容的内容:
ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 -vcodec libx264 -f h264 test.264
您必须根据要从中导出视频的文件类型调整命令行。
这会生成一个包含 H.264 访问单元的文件,其中每个访问单元由一个或多个 NAL 单元组成,每个 NAL 单元都以起始代码(0001 或 001)为前缀。您可以使用十六进制编辑器打开该文件来查看它。
您还可以使用以下命令创建 H.264 基本流文件 (.264)H.264参考编码器 http://iphome.hhi.de/suehring/tml/来自原始 YUV 输入文件。
如果将生成的 .264 文件复制到 live555 testOnDemandRTSPServer 目录中,则可以测试通过 RTSP/RTP 传输文件。
您能否提供一些参考资料来阅读有关 NAL / H.264 基本流的更多信息。如何快速检查流是否是基本流?
一般来说,容器中的任何内容(avi 或 mp4)都不是基本流。用于基本流的典型扩展名是“.264”。仔细检查文件是否为基本流的最快方法是在十六进制编辑器中打开文件并在文件开头查找起始代码 (00000001)。请注意,整个文件中应该有 3 (000001) 和 4 (00000001) 字节起始代码(在每个 NAL 单元之前)
为什么live555不播放非基本的h264流?
这纯粹是因为 live555 没有实现所需的解复用器(例如 avi 或 mp4)。 AFAIK live555 确实支持从 matroska 容器中解复用 H.264。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)