FFmpeg获取旋转角,目前只有在解析视频流的时候,调用rotate函数,才可以获取。
示例代码如下:
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;
}
通过FFmpeg命令行给视频加上旋转90°的命令:
ffmpeg -i test.mp4 -metadata:s:v rotate="90" -codec copy output_test.mp4