1

有什么方法可以直接使用OpenMAX在树莓派上获取H264视频的视频尺寸,而无需使用ffmpeg或其他东西?所有 pi 示例似乎都有硬编码的值。

谢谢!

4

1 回答 1

2

是的,这可以通过查询解码器输出端口的 OMX_PARAM_PORTDEFINITIONTYPE 结构来实现。你必须使用这些方面的东西:

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_EventPortSettingsChanged 事件触发(在处理第一个缓冲区之后发生)之后为您提供正确的值。否则,这个值可能而且很可能是错误的。

于 2015-03-29T01:15:08.363 回答