Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 如何从MP4文件中手动提取(解除封装)H.264位流_Video_H.264_Mp4 - Fatal编程技术网

Video 如何从MP4文件中手动提取(解除封装)H.264位流

Video 如何从MP4文件中手动提取(解除封装)H.264位流,video,h.264,mp4,Video,H.264,Mp4,从MP4中提取H264位流是否仅通过将视频曲目中的所有原始数据附加到H.264 MP4文件中来实现,或者是否有一些特殊的解码步骤来实现 到处都有一些H.264解码器源采用纯“264”轨迹作为输入。此输入是否可直接从平均MP4文件读取/获得?(比方说常见的iOS或Windows Phone MP4 AVC文件类型。)这个过程称为多路复用:您从一个文件中提取单个流,其中可能包含多个流和其他信息 Windows中,MediaFoundation API提供读取和解脱 .MP4文件。DirectSho

从MP4中提取H264位流是否仅通过将视频曲目中的所有原始数据附加到H.264 MP4文件中来实现,或者是否有一些特殊的解码步骤来实现


到处都有一些H.264解码器源采用纯“264”轨迹作为输入。此输入是否可直接从平均MP4文件读取/获得?(比方说常见的iOS或Windows Phone MP4 AVC文件类型。)

这个过程称为多路复用:您从一个文件中提取单个流,其中可能包含多个流和其他信息

Windows中,MediaFoundation API提供读取和解脱<代码> .MP4文件。DirectShow API也有第三方解复用器,例如


FFmpeg的
libavformat
有自己的解复用器。

当我从.264文件复制(比如说100字节)并在原始H.264文件中搜索时,它就在那里。那么,在什么意义上使用了这种多路复用表达式呢?顺便说一句,通过一些十六进制编辑器验证,似乎.263文件(比特流)被完整地包含在原始MP4文件中。多路复用允许:
1
2+同步文件中的流(例如视频+音频),
2
时间戳流,
3
查找友好流,尤其是文件开头有索引的流,渐进式下载友好。尽管如此,解复用仍然会产生原始的比特流。我两岁大的时候我自己也说过:亲爱的小我:是的,这是块中相同的数据。但不用担心,有一些像mp4parser这样的易于移植的库,甚至更好的是,为大多数平台编译的ffmpeg。如果您喜欢冒险,请阅读NAL单元和SP/PSS,并在命令行中使用ffmpeg进行一些测试,以比较.mp4和裸.264流的数据。