有没有任何方法可以直接使用OpenMAX在树莓pi上获取H264视频的视频尺寸,而不必使用ffmpeg或其他东西?所有的pi示例似乎都有硬编码的值。
谢谢!

最佳答案

是的,通过查询解码器输出端口的OXXPARAMPARPORTIONIONTIONTYPE型结构,这是可能的。你必须用下面的方法:

OMX_PARAM_PORTDEFINITIONTYPE portdef;
portdef.nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
portdef.nVersion.nVersion = OMX_VERSION;
portdef.nPortIndex = 131;

OMX_GetParameter(ILC_GET_HANDLE(video_decode), OMX_IndexParamPortDefinitionType, portdef);

printf("Width: %d, Height: %d\n", portdef.format.video.nFrameWidth, portdef.format.nFrameHeight);

请注意,只有在触发OMX_eventportsetingschanged事件(在处理第一个缓冲区之后发生)之后,此操作才会提供正确的值。否则,这个值可能是错误的。

关于c - OpenMAX,Raspberry PI:获取H264的视频尺寸,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28921632/

10-10 12:30