Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.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
C 从H.264比特流中提取运动矢量_C_Ffmpeg_H.264_Video Processing - Fatal编程技术网

C 从H.264比特流中提取运动矢量

C 从H.264比特流中提取运动矢量,c,ffmpeg,h.264,video-processing,C,Ffmpeg,H.264,Video Processing,我正在寻找一个开源工具/代码或一些指南来提取H.264编码位序列的运动矢量(MVs)。我已经知道,可以使用ffmpeg通过以下命令可视化运动矢量: ffplay-flags2+export\u mvs input.mp4-vf codecview=mv=pf+bf+bb 但是,我想生成一个日志文件,其中p帧和B帧的mv逐帧列出。我从libavutil/motion_vector.h中查看了MVs的结构,但是我找不到一个示例来说明如何通过ffplay将MVs提取并放置在原始序列上。我想如果我能找到

我正在寻找一个开源工具/代码或一些指南来提取H.264编码位序列的运动矢量(MVs)。我已经知道,可以使用ffmpeg通过以下命令可视化运动矢量:

ffplay-flags2+export\u mvs input.mp4-vf codecview=mv=pf+bf+bb

但是,我想生成一个日志文件,其中p帧和B帧的mv逐帧列出。我从libavutil/motion_vector.h中查看了MVs的结构,但是我找不到一个示例来说明如何通过ffplay将MVs提取并放置在原始序列上。我想如果我能找到答案,我可能会重新安排代码,将MVs提取到文本文件中

我还尝试了中给出的代码,但它似乎不适用于较新版本的ffmpeg:


如果有任何示例代码或提示,我将不胜感激。

CodeView视频过滤器的源代码是,这就是您想要的吗


[编辑]对不起,我想这没有多大帮助。您正在寻找的函数是,它显示如何从给定的AVFrame读取AVMotionVectors(作为边数据),这是命令行示例中使用的代码。本例调用draw_arrow(),但您只需调用printf()或将MV信息记录到您选择的日志文件中的某个自定义函数即可替换该函数。

对于堆栈溢出,询问教程、工具和库是无关紧要的(请参阅)。还要注意的是,它是根据LGPL授权的,并且是可用的。他还要求提供代码/指导,因此更有用的操作是提供一些代码示例。您好,您能提供一些关于如何在MATLAB中使用AVMotionVectors的详细信息吗。你的回答确实给了我一些提示,但是我被阻止了。如何在Matlab中得到这个。网上几乎没有关于这方面的信息。我想问一个更详细的新问题,我不知道你想如何在matlab中输入数据,或者你到底被阻止了什么。