我有一个二进制数据的char *数组。
它是用h.264编码的二进制媒体流。
它有下一个结构:......
stream_header是64字节结构。
我已经完成了reinterpret_cast(charArray),其中chararray代表了前64个字节的流。我成功获取了所有标题数据。在这个头文件中有一个nLength变量,它告诉我们下一个stream_data中有多少字节的媒体数据。
例如1024字节。
我在char *数据数组中读取了下一个1024字节,这里我的问题开始了:如何从视频帧的数据集中获取(在结构中我有关于此帧的分辨率的信息),并将其保存在*中。 jpg文件,如(1.jpg 2.jpg 3.jpg .....)
也许有人已经做了些什么吗?帮帮我..
答案 0 :(得分:1)
您需要H264解码器库,最佳选择是ffmpeg
但即便如此,使用该库也有点复杂 - 尽管解码更简单,因为您可以担心的选项较少。
你真的需要在程序中这样做吗?使用'ffmpeg'可执行文件将视频保存为jpegs
非常简单答案 1 :(得分:1)
如果您只是想从视频文件中获取一系列JPEG,GStreamer can do that以及其他许多内容。
如果您想从头开始编写代码以将H.264视频转换为JPEG,请告诉您,您有数百页的规范文档和一些非常严肃的数学知识,然后才能实现。对于一个技术熟练的程序员数学家而言,这将是几个月的工作。了解MP4格式很容易,视频压缩会 打击你的想法 。