本文主要是介绍ffmpeg调整视频角度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近公司要做一款视频版宠物喂食器,存在一个问题,就是视频sensor是旋转90度放置的,可能是开模影响或者是方案选型问题,这里先不做讨论。
由于视频sensor不是正立放置,那么出来的视频流也是被旋转90度的,这样在app端显示的视频也需要调整。
针对实时流,是比较容易处理的。可以有两种方法进行处理:一种就是将正立着的播放器旋转90度,也就是View层次的操作;第二种就是利用OPENGL的旋转矩阵,进行一个角度的旋转,也能达到显示的效果。
遇到的问题就是在录像这里,由于设备端无法处理,只能由强大的App端自己完成了。录像是以mp4的格式上传要云端的,app需要把云端录像下载下来进行播放,但是需要把这个角度对用户不可见,也就是说使用户看到的视频是正常的,所以app就要处理“下载到播放”或者说“下载到分享”这两者之间的一个神奇操作----进行mp4视频的旋转。
这里我有两个思路:第一种,就是想是否能交mp4解码YUV,然后对YUV数据进行处理,这样的话,实时流也能使用了,但只是一个想法,还不知道如何去实现。第二种,就是我们今天要做的操作,利用ffmepg强大的功能,对mp4文件进行一个角度的旋转。
首先,我们知道,利用:
av_dict_get(avStream->metadata, "rotate", tag, 0)
可以获取到流当前的角度,同理,利用:
这篇关于ffmpeg调整视频角度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!