使用ffmpeg压缩视频

一、到ffmpeg官网下载文件包:

Download FFmpeg

下载后找到 bin 下的3个exe文件,复制到自己本机的某个目录下, 如:

二、使用命令行压缩:

ffmpeg -i input.mp4 -c:v libx265 -crf 28 -y output.mp4

这条命令使用 FFmpeg 工具对输入视频文件 input.mp4 进行压缩,并将压缩后的视频保存为 output.mp4 文件。以下是对命令中各个参数的详细解释:

  • ffmpeg: FFmpeg 是一个开源的音视频处理工具,可以用于处理、转换和编辑音视频文件。
  • -i input.mp4: 指定要处理的输入视频文件为 input.mp4-i 是 FFmpeg 中用于指定输入文件的参数。
  • -c:v libx265: 指定视频编码器为 libx265,这表示使用 H.265/HEVC 编码器进行视频压缩。-c:v 是用于指定视频编码器的参数。
  • -crf 28: 指定视频的质量级别,数值越小表示质量越高,压缩率越低。在这里,-crf 28 表示使用 CRF(Constant Rate Factor)为 28 进行压缩,这是一个常用的视频质量控制参数。
  • -y: 在输出文件存在时自动覆盖。如果不加 -y 参数,在输出文件已存在时,FFmpeg 会提示是否覆盖输出文件。
  • output.mp4: 指定压缩后的视频文件名为 output.mp4

综合起来,这条命令的作用是将输入视频文件 input.mp4 使用 libx265 编码器进行压缩,质量级别为 28,并将压缩后的视频保存为 output.mp4 文件。执行该命令后,将生成一个经过压缩处理的输出视频文件。

请注意,压缩视频可能会导致视频质量的损失,但可以减小视频文件的大小。您可以根据需要调整 -crf 参数来平衡视频质量和文件大小。

三、使用FFmpeg对文件夹下的所有mp4文件进行批量压缩处理的powershell脚本:

如下ps脚本实现了对2个文件夹中的未压缩过的视频或者大于12MB的视频进行压缩。

视频每压缩一次,会小一点点,我这里的来源只是到2分钟内的视频,所以可以多次压缩。太大的视频就不要这样了,根据实际情况来吧。

function CompressVideosInFolder($folder) {$ffprobePath = "D:\Program\ffmpeg\ffprobe.exe"$ffmpegPath = "D:\Program\ffmpeg\ffmpeg.exe"Get-ChildItem -Path $folder -Filter *.mp4 | ForEach-Object {$filename = $_.Name$tempOutputPath = Join-Path $folder "temp_$filename"$codec = (& $ffprobePath -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1 $_.FullName).Trim()$fileSize = $_.Length / 1MB  # 文件大小转换为MBWrite-Host "Codec of file $filename is: $codec"Write-Host "File size of $filename is: $fileSize MB"if ($codec -ne "codec_name=hevc" -or $fileSize -gt 12) {Write-Host "File $filename needs compression..."Write-Host "Compressing file $filename..."& $ffmpegPath -i $_.FullName -c:v libx265 -crf 30 -y $tempOutputPathMove-Item -Path $tempOutputPath -Destination $_.FullName -Force} else {Write-Host "File $filename does not need compression, skipping..."}}
}$folder1 = "E:\uploads\Video"
$folder2 = "E:\uploads\testVideo"CompressVideosInFolder $folder1
CompressVideosInFolder $folder2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/706710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习——线性代数中矩阵和向量的基本介绍

矩阵和向量的基本概念 矩阵的基本概念(这里不多说,应该都知道) 而向量就是一个特殊的矩阵,即向量只有一列,是个n*1的矩阵 注:一般矩阵用大写字母表示,向量用小写字母表示 矩阵的加减运算 两个…

前端架构: 脚手架命令行交互核心实现之inquirer和readline的应用教程

命令行交互核心实现 核心目标:实现命令行行交互,如List命令行的交互呢比命令行的渲难度要更大,因为它涉及的技术点会会更多它涉及以下技术点 键盘输入的一个监听 (这里通过 readline来实现)计算命令行窗口的尺寸清屏光标的移动输出流的静默 …

关于年化收益率的思考

近期,对于投资的年化收益率有一些思考,想着将这些思考整理一下,顺便也就记录在这里。 1. 计算方式 年化收益率常见的计算有三种:算数平均,几何平均,IRR。 1.1 算术平均 算数平均用于度量产品的回报率&a…

MetaGPT 1 安装与配置踩坑实录

安装 与 配置直接参考这里就行:Hugging Muti Agent(二月学习) - 飞书云文档 (feishu.cn) 这里按照教程安装的是metagpt 0.6.6 ,经过跟0.7.0对比,个人认为0.7对其他llm接入可能更好,文档也更清晰。 0.6.6的…

uniapp android 原生插件开发-测试流程

前言 最近公司要求研究一下 uniapp 的 android 原生插件的开发,为以后的工作做准备。这篇文章记录一下自己的学习过程,也帮助一下有同样需求的同学们 : ) 一、下载安装Hbuilder X , Android studio(相关的安装配置过程网上有很多,…

安全运营中心(SOC)综合指南

什么是安全运营中心(SOC) 安全运营中心,也称为信息安全运营中心 (ISOC),是结构良好的网络安全战略的核心。安全运营中心是一个集中式枢纽,无论是在组织内部还是外包,都致力于对整个…

云计算时代的运维: 职业发展方向与岗位选择

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua,在这里我会分享我的知识和经验。&#x…

Nginx网络服务五-----rewrite和反向代理

1.rewrite 1.1rewrite指令 通过正则表达式的匹配来改变URI,可以同时存在一个或多个指令,按照顺序依次对URI进行匹配,rewrite主要是针对用户请求的URL或者是URI做具体处理 官方文档: https://nginx.org/en/docs/http/ngx_http_r…

自动驾驶消息传输机制-LCM

需要用到LCM消息通讯,遂研究下。 这里写目录标题 1 LCM简介2. LCM源码分析3 LCM C教程与实例3.1 安装配置及介绍3.2 创建类型定义3.3 初始化LCM3.4 发布publish一个消息3.5 订阅和接收一个消息3.6 LCM进程间通讯3.7 注意事项?3.7.1 当数据结构定义的是数…

代码随想录算法训练营29期|day64 任务以及具体安排

第十章 单调栈part03 有了之前单调栈的铺垫&#xff0c;这道题目就不难了。 84.柱状图中最大的矩形class Solution {int largestRectangleArea(int[] heights) {Stack<Integer> st new Stack<Integer>();// 数组扩容&#xff0c;在头和尾各加入一个元素int [] ne…

斯元Z-ONE-China Cybersecurity Tech Landscape·中国网络安全全景图-百度网盘下载

面向全球&#xff0c;斯元Z-ONE正式发布首版「China Cybersecurity Tech Landscape中国网络安全全景图」。 为了提升海外市场对中国网络安全行业的全局认识&#xff0c;方便国际客户及合作伙伴了解中国网络安全科技的赛道分布和国内外厂商对标&#xff0c;助力中国网安厂商出海…

uni-app之android原生插件开发

官网 uni小程序SDK 一 插件简介 1.1 当HBuilderX中提供的能力无法满足App功能需求&#xff0c;需要通过使用Andorid/iOS原生开发实现时&#xff0c;可使用App离线SDK开发原生插件来扩展原生能力。 1.2 插件类型有两种&#xff0c;Module模式和Component模式 Module模式&…

【架构笔记1】剃刀思维-如无必要,勿增实体

欢迎来到文思源想的架构空间&#xff0c;前段时间博主做了一个工作经历复盘&#xff0c;10年开发路&#xff0c;走了不少弯路&#xff0c;也算积累了不少软件开发、架构设计的经验和心得&#xff0c;确实有必要好好盘一盘&#xff0c;作为个人的总结&#xff0c;同时也留给有缘…

Flink SQL 中的流式概念:状态算子

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

10W 音频功率放大电路芯片TDA2003,可用于汽车收音机及收录机中作音频功率放大器,内部具有短路保护和过热保护等功能

TDA2003 用于汽车收音机及收录机中作音频功率放大器。 采用 TO220B5 封装形式。 主要特点&#xff1a; ⚫ 内部具有短路保护和过热保护。内部具有地线开路、电源极性接 反和负载泄放电压反冲等保护电路。 ⚫ 输出电流大。 ⚫ 负载电阻可低至 1.6 。 …

LeetCode 刷题 [C++] 第141题.环形链表

题目描述 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&a…

STC-ISP原厂代码研究之 V3.7d汇编版本

最近在研究STC的ISP程序,用来做一个上位机烧录软件,逆向了上位机软件,有些地方始终没看明白,因此尝试读取它的ISP代码,但是没有读取成功。应该是目前的芯片架构已经将引导代码放入在了单独的存储块中,而这存储块有硬件级的使能线,在面包板社区-宏晶STC单片机的ISP的BIN文…

matlab绘制雷达图和二维FFT变换图

1、内容简介 略 49-可以交流、咨询、答疑 matlab绘制雷达图和二维FFT变换图 NMO组及NORMAL组 RNFL层、GCL层、IPL层、GCC层、ORL层做雷达图&#xff08;共10张&#xff09; 2、内容说明 略 NMO组及NORMAL组 RNFL层、GCL层、IPL层、GCC层、ORL层请分别做雷达图&#xff08…

kotlin与java的相互转换

Kotlin转java 将kotlin代码反编译成java Tools -> Kotlin -> Show Kotlin Bytecode 然后点击 【Decompile】 生成java代码 java转kotlin Code -> Convert Java File To Kotlin File

科技论文编写思路

科技论文编写思路 1.基本框架2.课题可行性评估1.研究目标和意义2.研究方法和技术3.可行性和可操作性4.风险和不确定性5.经济性和资源投入6.成果预期和评估 3.写作思路4.利用AI读论文5.实验流程 1.基本框架 IntroductionRelated worksMethodExperiment and analysisDiscussionC…