您的位置:首页 > 其它

FFmpeg获取视频的旋转角度rotate函数,一定能获取!(要放在解析视频流的时候才能获取)

2016-02-28 22:40 465 查看
int getRotateAngle(AVStream* avStream)
{

    AVDictionaryEntry *tag =
NULL;
   
int   m_Rotate=-1;
    tag =
av_dict_get(avStream->metadata,
"rotate", tag, 0);
   
if (tag==NULL)
    {
        m_Rotate =
0;
    }
   
else
    {
       
int angle = atoi(tag->value);
        angle %=
360;
       
if (angle == 90)
        {
            m_Rotate =
MT_VIDEO_ROTATE_90;
        }
       
else if (angle ==
180)
        {
            m_Rotate =
MT_VIDEO_ROTATE_180;
        }
       
else if (angle ==
270)
        {
            m_Rotate =
MT_VIDEO_ROTATE_270;
        }
       
else
        {
            m_Rotate =
MT_VIDEO_ROTATE_0;
        }
    }
   
return m_Rotate;
}

因为一个视频的metadata有好几个,所以一定要放在视频流那个地方,才能获取到视频的旋转角度。其他地方都没有这个属性。

切忌!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息