一、前言

用手机或者平板拍摄的视频文件,很可能是旋转的,比如分辨率是1280x720,确是垂直的,相当于分辨率变成了720x1280,如果不做旋转处理的话,那脑袋必须歪着看才行,这样看起来太难受,所以一定要想办法解析到视频的旋转角度,然后根据这个角度重新绘制。在窗体那边也需要调整对应的分辨率,一般都是宽度高度互换。其实早期的很多播放器比如vlc2版本的播放器也是不支持旋转的,从vlc3开始内置会自动给旋转,估计这种场景越来越多,毕竟现在智能手机大行其道,用手机拍摄的视频很多都是竖屏的。

在ffmpeg中旋转frame帧数据,有多种方式,方式一是直接通过运算逐行取出数据,重新组织旋转后的视频帧数据;方式二通过滤镜来实现。最开始还没学会用ffmpeg的滤镜的时候,用的就是方式一,通俗易懂,但是很傻,尤其是运算很占CPU,毕竟for循环来个很多次挨个取数据又重新组织数据。自从学会用ffmpeg滤镜以后,从滤镜大全中找到了居然也支持旋转,而且任意角度旋转都可以,甚至镜像操作,这就非常强大了,马上将这个架构的旋转部分全部换成了滤镜旋转,连之前用于旋转的中间过渡帧数据变量都不需要,代码更精简,功能更强大,拓展性更好,这其实就是一个不断精进迭代的过程,第一步解决从无到有的过程,后面才是持续不断的完善。

二、效果图

Qt音视频开发27-ffmpeg视频旋转显示相关推荐

  1. iOS音视频开发八:视频编码,H.264 和 H.265 都支持

    我们将通过拆解采集 → 编码 → 封装 → 解封装 → 解码 → 渲染流程并实现 Demo 来向大家介绍如何在 iOS/Android 平台上手音视频开发. 这里是第八篇:iOS 视频编码 Demo. ...

  2. 直播软件搭建音视频开发中的视频采集

    直播软件搭建音视频开发中的视频采集 前言 在直播和短视频行业日益火热的发展形势下,音视频开发(采集.编解码.传输.播放.美颜)等技术也随之成为开发者们关注的重点,本系列文章就音视频开发过程中所运用到的 ...

  3. C++/Qt音视频通话开发MetaRTC源码解读,视频推流和拉流

    本章内容解读MetaRTC开源代码,无任何二次开发,用于学习交流. MetaRTC是国人开发的开源项目,适用各种场景音视频二次开发,可以去git阅读README,我们使用相对成熟的版本测试: Rele ...

  4. iOS音视频开发七:视频采集

    将通过拆解采集 → 编码 → 封装 → 解封装 → 解码 → 渲染流程并实现 Demo 来向大家介绍如何在 iOS/Android 平台上手音视频开发. 这里是第七篇:iOS 视频采集 Demo.这个 ...

  5. iOS音视频开发十三:视频渲染,用 Metal 渲染

    本系列文章通过拆解采集 → 编码 → 封装 → 解封装 → 解码 → 渲染流程并实现 Demo 来向大家介绍如何在 iOS/Android 平台上手音视频开发. 这里是第十三篇:iOS 视频渲染 De ...

  6. Moviepy音视频开发:生成过场剪辑显示特定信息和倒计时信息

    #### ☞ ░ [老猿Python博文目录](https://blog.csdn.net/LaoYuanPython/article/details/98245036) ░ 一.引言 这两天要剪辑一 ...

  7. linux 获取视频截图,linux ffmpeg 视频截图 安装使用

    Ubuntu 12.04 在安装ffmpeg之前,首先要安装yasm 1.安装yasm 我用的yasm是yasm-1.2.0.tar.gz这个版本的 #wget http://www.tortall. ...

  8. Ios短视频开发初始化短视频失败或延时太长的问题原因分析

    在人们都追求快节奏的现在,手机APP打开速度都会成为购买手机时要考虑的重要问题,联通网络公司断网半个小时能引起民愤,那么移情考虑到短视频平台上来说,在视频播放方面,初始化短视频的时间当然是越短越好. ...

  9. 短视频开发,录制视频添加背景音乐功能实现

    短视频开发,会在视频录制时提供相关的背景音乐选择,看似简单的选取背景音乐,但对开发人员来说却不是那么简单,如何实现短视频开发录制视频添加背景音乐功能呢? 1.短视频开发在录制界面点击音乐,绘制UI 添 ...

  10. 短视频开发之短视频广告功能,教你玩转短视频营销

    2018年互联网营销的阵地逐渐从网络视频直播平台转移到了短视频平台,因此很多企业纷纷将广告投入向短视频营销倾斜.短视频具备内容短小精悍.创意多元化.充分利用碎片时间的特点,与传统的视频广告相比,短视频 ...

最新文章

  1. (001) RN开发之Mac搭建开发环境
  2. mysql ndb 测试_.部署MYSQL集群 --测试
  3. 2021高考东莞高中成绩查询,东莞2021高考成绩查询系统入口
  4. android 手机投影演示 ——vysor操作手册
  5. CCNP实验【静态出接口配置】
  6. iask(http://ishare.iask.sina.com.cn/download/explain.php?fileid=12207500)
  7. 【SqlServer】Sqlserver中的DOS命令操作
  8. Symbian中的新手问题整理(二)
  9. VS Code解决Go相关工具无法安装问题
  10. java byte数组与int,long,short,byte转换
  11. 新华三计算机网络题,计算机等考试三网络技术模拟试题及答案(二)云南新华电脑学校.doc...
  12. Word多级标题测试
  13. 已经安装了VRay但3dmax的材质编辑器里没有VRay材质的解决过程
  14. Windows资源管理器已停止工作的解决方法
  15. 手机直面屏与曲面屏有什么区别?,很多人都不知道
  16. 杂谈对抽象事物的审美——繁体字与简体字,孰美?
  17. 关于微信小程序自定义Picker样式的picker-view
  18. 企业微信回调服务器python,微信企业号开发:开启回调模式/Python判断信息-回复指定内容示例代码...
  19. SAP动态安全库存设置
  20. Connection refused:connect@src/mongo/shell/mongo.js:374:17 @(connect):2:6 exception: connect failed

热门文章

  1. 虚拟数字人+虚拟场景,天子品牌首个元宇宙虚拟发布会成功举行
  2. 带着身体在香港肤浅行走(三)
  3. jspdf 添加页眉页脚_如何使用HTML向网页添加页脚
  4. 2022第四届中国国际养老服务业展览会,9月26日在济南举办
  5. 加州大学圣塔芭芭拉分校计算机排名,加州大学圣塔芭芭拉分校世界排名及专业排名汇总(QS世界大学排名版)...
  6. facebook广告竞价如何运作,成交广告需支付多少费用(老版)
  7. 常见编程命名方法,看看你属于哪一种?
  8. Oracle查询一段时间内的数据
  9. 在word文档中插入外部对象(例如插入另一个外部word文档或excel文档)
  10. 一杯敬明天,一杯敬过往--我的半年总结