ffmpeg实现视频的翻转与旋转(ffmpeg4.2.2)
一,ffmpeg的安装
请参见:
- https://www.cnblogs.com/architectforest/p/12807683.html
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,ffmpeg的使用例子:视频的翻转
视频原图:
1,水平翻转
#-vf filter_graph,用来设置: video filters
# hflip 水平翻转
- [root@blog 1]# ffmpeg -i 8_9f6fa300bacded7b.mp4 -vf "hflip" /data/dev/think_file/html/8_hflip.mp4
见截图:
2,垂直翻转
#vflip: 垂直翻转
- [root@blog 1]# ffmpeg -i 8_9f6fa300bacded7b.mp4 -vf "vflip" /data/dev/think_file/html/8_vflip.mp4
见截图:
三,ffmpeg的使用例子:视频的旋转:
视频原图:
#transpose:指定旋转的效果
0=90CounterCLockwise and Vertical Flip (default)
1=90Clockwise
2=90CounterClockwise
3=90Clockwise and Vertical Flip
0:逆时针旋转90度并垂直翻转
1:顺时针旋转90度
2:逆时针旋转90度
3:顺时针旋转90度后并垂直翻转
1,顺时针旋转90度:
- [root@blog 1]# ffmpeg -i 8_9f6fa300bacded7b.mp4 -vf "transpose=1" /data/dev/think_file/html/8_t1.mp4
见截图:
2,逆时针旋转90度
- [root@blog 1]# ffmpeg -i 8_9f6fa300bacded7b.mp4 -vf "transpose=2" /data/dev/think_file/html/8_t2.mp4
见截图:
3,顺时针旋转90度后并垂直翻转
- [root@blog 1]# ffmpeg -i 8_9f6fa300bacded7b.mp4 -vf "transpose=3" /data/dev/think_file/html/8_t3.mp4
见截图:
4,顺时针旋转180度
- [root@blog 1]# ffmpeg -i 8_9f6fa300bacded7b.mp4 -vf "transpose=2,transpose=2" /data/dev/think_file/html/8_t5.mp4
见截图:
5,指定角度:90度
#PI/2: 90度,注意,视频旋转90度后,原宽高没变,所以显示两侧有黑边
#画面有被隐藏掉的部分
- [root@blog 1]# ffmpeg -i 8_9f6fa300bacded7b.mp4 -vf "rotate=PI/2" /data/dev/think_file/html/8_rpi2.mp4
见截图:
6,指定角度:180度
#因为旋转180度仍然与原宽高相等,所以没有黑边,也没有被隐藏的画面
- [root@blog 1]# ffmpeg -i 8_9f6fa300bacded7b.mp4 -vf "rotate=PI" /data/dev/think_file/html/8_rpi1.mp4
见截图:
7, 指定角度:60度
#原宽高不变,出现黑底,也有画面被隐藏
- [root@blog 1]# ffmpeg -i 8_9f6fa300bacded7b.mp4 -vf "rotate=PI/3" /data/dev/think_file/html/8_rpi3.mp4
见截图:
四,查看ffmpeg的版本
- [root@blog img]$ ffmpeg --version
- ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
- built with gcc 8 (GCC)
五,查看centos的版本
- [root@blog 1]# cat /etc/redhat-release
- CentOS Linux release 8.0.1905 (Core)
ffmpeg实现视频的翻转与旋转(ffmpeg4.2.2)的更多相关文章
- 项目实战:Qt+Ffmpeg+OpenCV相机程序(打开摄像头、支持多种摄像头、分辨率调整、翻转、旋转、亮度调整、拍照、录像、回放图片、回放录像)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- ffmpeg实现视频转gif及gif缩放(ffmpeg4.2.2)
一,为什么选择ffmpeg处理gif? 1,ffmpeg可以从视频中截取gif 2,ffmpeg在缩放gif时出错的机率较低, 而imagemagick在缩放gif时容易出错 我们在后面的例子中可以看 ...
- 使用ffmpeg进行视频截图
1.从ffmpeg的Windows Build网站(https://ffmpeg.zeranoe.com/builds/)下载ffmpeg. 2.下载后解压压缩包,得到如下左图的文件.然后打开bin文 ...
- HTML5播放视频,并使用ffmpeg对视频转编码
网页加入视频可以用h5自带的video标签,这里用一个jQuery封装优化好的video视频组件videojs. videojs官方网站:https://docs.videojs.com/index. ...
- ffmpeg为视频添加时间戳 - 手动编译ffmpeg
FFMPEG给视频加时间戳水印 项目中需要给视频添加时间戳,理所当然最好用的办法是ffmpeg.在找到正确的做法前,还被网上的答案timecode给水了一下(水的不轻,在这里转了2天),大概是这样写的 ...
- 利用FFmpeg生成视频缩略图 2.1.6
利用FFmpeg生成视频缩略图 1.下载FFmpeg文件包,解压包里的\bin\下的文件解压到 D:\ffmpeg\ 目录下. 下载地址 http://ffmpeg.zeranoe.com/build ...
- C# 利用ffmpeg 对视频转换系类操作 (1) 基本分析
最近公司做一个项目,开发一个视频站点.项目需求中有很多视频转换的需求,如:格式转换(flv,Mp4),视频水印,视频截图,视频合成,获取视频的基本信息(时间戳,视频大小等).经过网络的收集资料以及自己 ...
- 使用ffmpeg 对视频截图,和视频转换格式
//执行CMD命令方法 public static void CmdProcess(string command)//调用CMD { //实例化一个进程类 ...
- NET 2.0(C#)调用ffmpeg处理视频的方法
另外:ffmpeg的net封装库 http://www.intuitive.sk/fflib/ NET 2.0 调用FFMPEG,并异步读取输出信息的代码...public void ConvertV ...
随机推荐
- [LeetCode]面试题67. 把字符串转换成整数
题目 写一个函数 StrToInt,实现把字符串转换成整数这个功能.不能使用 atoi 或者其他类似的库函数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们 ...
- 关于AES的S盒子的计算
对于置换piS 有如下计算: The matrix used in AES is a rotational matrix based on the value 0x1F, which is 00011 ...
- Java中“==”和 equals的区别
“==”的作用: 判断两个变量栈内存中存储的值是否相等,如果相等返回true,如果不相等返回false. 有两种形式的比较需要用到比较运算符“==”,一是两个基本数据类型之间的比较,二是两个引用数据类 ...
- 《k8s权威指南》读书笔记
抽空读完了<k8s权威指南>一书,对k8s的总算有了较为系统的认知. 好记忆不如多写字,以下是读书笔记 第一章 k8s入门 k8s是什么: 一个开源的容器集群管理平台,可提供容器集群的自动 ...
- 对比ERP解读企业资产管理EAM在电力行业应用
对比ERP解读企业资产管理EAM在电力行业应用 .关于EAMEAM (Enterprise Asset Management)企业资产管理,是面向固定资产占企业资产主要部分的资产密集型(Capital ...
- Spark Job-Stage-Task实例理解
Spark Job-Stage-Task实例理解 基于一个word count的简单例子理解Job.Stage.Task的关系,以及各自产生的方式和对并行.分区等的联系: 相关概念 Job:Job是由 ...
- 快速上手spring
一.初始程序 1.在父类pom导入所需要的jar包 2.编写一个实体类 3.创建一个beans.xml,创建一个bean即创建一个user对象,可在bean内配置property即设置属性值 4.用测 ...
- Redis学习(五)Redis知识点总结
一.基础概念 Q:什么是 Redis? 定义:Redis 是完全开源免费基于内存亦可持久化的,遵守 BSD 协议,是一个高性能的 key-value 数据库. 特点: 数据的持久化 :可以将内存中的数 ...
- 【测试基础第六篇】bug定义及生命周期
bug定义 狭义:软件程序的漏洞或缺陷 广义:测试工程师或用户所发现和提出的软件可改进的细节(增强型.建议性)或需求文档存在差异的功能实现 职责:发现bug,提给开发,让其修改 bug类型--了解 代 ...
- 20190531模拟赛总结&反思
T1: 来源:Codeforces - Classroom Watch Describe: 给出一个正整数 n,现在问存在多少个 x,使得 x在十进制下的每一位之和加上 x 等于 n. Solut ...