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

来源:互联网 发布:北京科瑞明软件招聘 编辑:程序博客网 时间:2024/04/30 22:31

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有好几个,所以一定要放在视频流那个地方,才能获取到视频的旋转角度。其他地方都没有这个属性。


切忌!






0 0