Qt音视频开发27-ffmpeg视频旋转显示

2023/11/30 8:22:55

一、前言

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

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

二、效果图

在这里插入图片描述


http://www.jnnr.cn/a/369199.html

相关文章

《花雕学AI》05:令人惊奇的ChatGPT,一个能够与人类对话的人工智能

今天是周末,4月2日,早上五点就起床了,没有去打羽毛球。 我平时在手机上喜欢看今日头条,了解各种时事新闻,发现今年来频繁出现的单词就是:ChatGPT,通过简单搜索,我逐步接受了这个概念…

从零开始学OpenCV——图像灰度变换详解(线性与非线性变换)

文章目录图像灰度变化灰度变换介绍灰度线性变换灰度分段线性变换图像点运算灰度非线性变换线性点运算灰度的非线性变换:对数变换灰度的非线性变换:伽马变换灰度的非线性变换:对比拉伸灰度的非线性变换: S形灰度变换灰度的非线性变…

Spring Cloud Alibaba Sentinel

一、简介 官网: https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D Sentinel: 分布式系统的流量防卫兵 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、流量路由、熔断降级、系统…

HDFS Balancer负载均衡器

文章目录1、背景2、什么是平衡2.1 每个DataNode的利用率计算2.2 集群的利用率2.3 平衡3、hdfs balancer语法4、运行一个简单的balance案例4.1 设置平衡数据传输带宽4.2 执行banalce5、参考文档1、背景 当我们的hadoop集群运行了一段时间之后,各个DataNode上的数据分…

[LeetCode刷题] - LC006 ZigZag Conversion

题目描述 给定一个字符串,想让你用纵向zig-zag形式展开,然后在横向进行拼接输出最后的新字符串 LeetCode 006Can you solve this real interview question? - Level up your coding skills and quickly land a job. This is the best place to expand…

基于Java(SSM)的学生考勤管理系统

前端:jsp 框架:SSM 数据库:MySQL 有数据库文件,导入即可用 可作为毕设参考 资源路径: https://download.csdn.net/download/yw1990128/87630215 1.1功能需求 信息技术的广泛使用,传统的考勤管理已经不…

多传感器融合定位GNSS、IMU、Lidar、Camera

概述 1.纯激光雷达点云定位 2.融合GNSS的点云定位 3.融合IMU的点云定位 4.融合GNSS、IMU的点云定位 5.融合Camera的点云定位 参考AutoWare 或者 Apollo AutoWare: https://github.com/autowarefoundation/autoware_ai_perception Apollo: https://git…

关于uview2.0计步器最大值赋值问题

需求:当有设置最大值时,计步器则设置max为此数值,最小值1,加大最大值时即不能在往上增加,最大值设置为0则为不限;那么u-number-box的max就要根据设置的数值去判断 uview的u-number-box文档:htt…

oracle 低版本 11.2.0.1.0 创建DBlink访问 oracle 19c提示用户密码错误ORA-010107

由于导数据需要,在oracle 11.2.0.1创建dblink访问oracle19c数据库,提示用户密码错误。 当然不会存在创建是 用户密码错误的情况。 报错页面如下 后面猜想是由数据库版本太低问题导致, 11g版本信息如下: SELECT t.* FROM v$vers…

小白学Pytorch系列--Torch.nn API Quantized Functions(19)

小白学Pytorch系列–Torch.nn API Quantized Functions(19) 方法注释parametrizations.orthogonalparametrizations.spectral_normparametrize.register_parametrizationparametrize.remove_parametrizationsparametrize.cachedparametrize.is_parametrizedparametrize.Paramet…

MySQL主从复制的原理与实操+mycat2读写分离

文章目录MySQL主从复制的原理与实操主从复制原理MySQL主从复制的高级应用MySQL主从复制实操(一主两从)**环境准备****master配置**slave设置MySQL读写分离配置(一主两从)创建数据源查询集群创建逻辑库修改逻辑库的数据源测试读写分…

spark sql(七)源码解析 - sparksql什么时候将时间类型转换成整型或者长整型,又是什么时候将整型或长整型转为时间类型?

1、背景 在做sql下推逻辑时,因为时间类型的自动转换导致自定义的下推逻辑失效 ,为了深入了解问题的原因和更好的解决问题,所以准备源码追踪下sparksql转换类型的具体时间点。另外因为只需要验证sql 字段转换的逻辑,所以只需要有一…

大语言模型带来的一些启发

仅代表个人看法,不喜勿喷。 The limits of my language means the limits of my world. (Ludwig Wittgenstein) 我的语言的极限意味着我的世界的极限。——维特根斯坦 大语言模型解决的不仅是处理文本相关问题,它带来的是人对世界的理解,或者…

安装Ubuntu双系统

本文为自己安装记录回顾用 1、下载想要安装的 Ubuntu 系统 https://ubuntu.com/download/desktop 2、制作U盘启动盘,并在win10的 磁盘管理 中为Ubuntu腾出磁盘空间 插上U盘,打开制U盘启动盘的软件 ,选择要烧录的U盘以及系统镜像文件&#xff…

正则表达式-运算符优先级和匹配规则

文章目录一、正则表达式-运算符优先级二、正则表达式-匹配规则总结一、正则表达式-运算符优先级 正则表达式 - 运算符优先级 正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似。 相同优先级的从左到右进行运算,不同优先…

【CE】Mac下的CE教程Tutorial:基础篇(第5关:代码查找器)

▒ 目录 ▒🛫 导读开发环境1️⃣ 第五关:代码查找器翻译操作步骤🛬 文章小结📖 参考资料🛫 导读 开发环境 版本号描述文章日期2023-03-操作系统MacOS Big Sur 11.5Cheat Engine7.4.3 1️⃣ 第五关:代码查…

mysql主从复制原理及一主一从搭建过程—2023.04

文章目录一、MySQL主从复制介绍1、主从复制概念2、为什么要做主从复制3、主从复制原理4、主从复制形式5、主从复制主要用途二、MySQL一主一从搭建1、准备工作2、MySQL主从复制部署流程1. 关闭防火墙,两台主机都操作2. 修改配置文件,两台主机都操作3. 修改…

Randomized Response论文笔记

1.论文背景 1.1 主要思想: 利用对敏感问题回答的不确定性对原始数据进行隐私保护. (用撒谎来掩饰) 1.2 核心问题: 在回答隐私问题时,很多人不愿意回答或者是随机回答,因此统计结果的误差通常很难估计. …

蓝桥杯30天真题冲刺|题解报告|第三十天

大家好,我是snippet,今天是我们这次蓝桥省赛前一起刷题的最后一天了,今天打了一场力扣周赛,前面3个题都是有思路的,第三个题只过了一半的案例,后面看完大佬们的题解彻悟,下面是我今天的题解 目录…

由于链接地址长度过长引起的”HTTP Error 400. The request URL is invalid”错误解决办法:修改注册表

网站中,设计了一个批量搜索的功能,用户可以输入多个关键词进行批量查询搜索,但不出意外的话还是出意外了,有些用户可能会输入 N 多个关键词,我为了性能等考虑,会限制个数,比如每次批量查询仅限 …
最新文章