1 引言

最近由于工作需要,做了很多汇报材料.为了展示算法效果,大多神经网络开发人员都直接将模型跑出来的结果做成视频,但是生成的视频文件往往很大,在PPT插入时显得异常臃肿,真让人脑壳大 >_<.

2 问题描述

为了方便的在PPT或其他汇报材料中插入小视频文件,这里指体积小的视频文件,我们可以选择对原始视频进行压缩,让其体积变小.压缩后,视频文件体积小了,所占空间自然就小了,我们的汇报材料所占空间自然而然也就小了.

俗话说的好:工欲善其事,必先利其器.我们肯定不是第一个遇到此类问题的人呀,我们打开百度,搜索一番.唉,小度苦人久矣,搜出来摸索半天都是收费软件或者需要实名注册才可以…

3 解决方案

百度搜索折腾了半天,无果遂放弃.突然想起来自己还是个程序员,那就用命令行方式来解决吧.这里给大家安利FFmpeg库来做视频压缩,速度贼拉拉地快…

3.1 安装

ffmpeg的在ubuntu上的安装方式贼简单,使用以下命令即可安装:

sudo apt-get update
sudo apt-get install ffmpeg

安装后执行以下命令进行验证:

ffmpeg -version

输出以下信息,则证明安装成功:

ffmpeg version 2.8.17-0ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 20160609

可以看出我们ffmpeg的版文为2.8.17,该库使用gcc-5.4进行编译生成.

3.2 视频压缩

FFmpeg是一套可以用来记录 转换数字音频和视频,并能将其转化为流的开源计算机程序.它提供了录制 转换以及流化音视频的完整解决方案.

嗯嗯, 接下来我们使用以下命令来执行视频压缩:

ffmpeg -i input.mp4 -vcodec h264 -acodec mp2 output.mp4
ffmpeg –i input.mp4 –vcodec h264 –g 25 –s 352*278 –an –f m4v test.264

上述命令解释如下:

  • -i: 指定输入文件,上面的例子中为input.mp4,实际支持绝大部分视频格式(.avi, .mkv, .264等)
  • -f: 指定输出格式,支持常见大部分视频格式输出
  • -s: 设定输出视频的宽与高
  • -an: 不处理音频
  • -vcodec: 指定视频编解码器,未设定时采用和输入流相同的编解码器
  • -acodec: 指定声音编解码器,未设定时采用和输入流相同的编解码器

我们执行以下命令,对视频detect.avi执行H264编码压缩后输出output.mp4文件:

ffmpeg -i detect.avi -vcodec h264 -acodec mp2 output.mp4

文件大小压缩后从 152MB 减小至 40.4MB,压缩过程虽然是有损压缩,但是清晰度还是足够使用的,人眼几乎看不出来区别,简直无敌…

3.3 视频抽帧

学会了视频压缩,这里我们来思考下一个问题,如果我们不想要完整的视频,只想要从视频流中截取一段最精彩的视频片段,那我们该如何操作呢?

嗯… 答案还是推荐使用万能的ffmpeg,废话少说,我们直接看命令:

ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 -c copy output.mp4

上述命令解释如下:

  • -i: 指定输入文件,上面的例子中为input.mp4,实际支持绝大部分视频格式(.avi, .mkv, .264等)
  • -ss:-i 一起使用,截取视频片段开始时间,上述命令中为00:01:00
  • -to: 指定从开始时间算起截取的时间长度
  • -c copy: 指定视频流截取方式

好了,接下来我们从上述压缩后的完整视频中截取前10s 作为我们的最终输出,采用命令行如下:

ffmpeg -i output.mp4 -ss 00:00:00 -to 00:00:10 -c copy result.mp4

使用上述命令后,我们从压缩视频中提取精彩10s的视频,我们查看其大小:

最后的最后,我们的素材文件就只剩下了10M大小了,嗯捏,极大的减少了所占空间.
en,自从使用了FFmpeg, 感觉又看见了光…

4 总结

本文介绍了如何使用FFmpeg库进行快速视频压缩和视频片段提取,针对FFmpeg库常用命令行参数进行了讲解说明,并给出了具体处理后的文件大小.

您学废了吗?

5 参考

本文参考链接如下:
链接一

关注公众号《AI算法之道》,获取更多AI算法资讯。

日常技巧之使用FFmpeg进行快速视频压缩和视频片段截取相关推荐

  1. 如何用ffmpeg截取视频片段截取时间不准确的坑

       之前在工作中,有遇到需要程序化截取视频片段的场景,这里使用ffmpeg命令行就可以很容易实现,这里也记录下我们使用过程中遇到的坑,希望对大家也有所帮助.    举个例子,当我们要截取视频文件中i ...

  2. 使用ffmpeg随意剪辑、合并视频片段

    1. ffmpeg剪辑时出现的问题 ffmpeg 为了加速,会使用关键帧技术, 所以有时剪切出来的结果在起止时间上未必准确. 上述原理会出现剪辑视频时,若开始时间处并不是关键帧,导致剪辑的片段开头有停 ...

  3. ffmpeg php裁剪上传视频教程,经验秘籍:ffmpeg超快速简单的视频批量剪切裁剪工具教程...

    事情的起因是这样,给朋友下载了全集1080p的电影,拷贝到优盘后用电视看得挺好,过一阵说每次切换都有片头,还要手动往后倒,让我处理下,当时想的这种小事随便网上搜个什么批量工具就搞定了,结果弄了半天,不 ...

  4. (转)爱剪辑学习记录_2.快速添加、截取、删除视频片段

    一.添加视频 在软件主界面顶部点击"视频"选项卡,在视频列表下方点击"添加视频"按钮,在弹出的文件选择框添加视频片段. 图1:添加视频片段 二.通过" ...

  5. 工具 | 快速视频压缩与格式转换

    在使用 PPT 或者 希沃白板5 的工具时,可能需要在课件中添加视频. 多数情况下,视频都不需要很大,可以进行一定的压缩. 以下是一个快速视频压缩指南. 格式工厂的操作更简单了: 工具 | 快速视频压 ...

  6. 不会CAD制图怎么办?掌握这几个CAD技巧,新手也能快速入门

    不会CAD制图怎么办?掌握这几个CAD技巧,新手也能快速入门 每当我们看到CAD大神,分分钟就能设计出一张图纸,是多么的崇拜,如果你现在只是一个新手,那么掌握下面这几个CAD技巧,也能让你快速入门. ...

  7. 【音视频开发系列】一学就会,快速掌握音视频开发的第一个开源项目FFmpeg

    快速掌握音视频开发的第一个开源项目:FFmpeg 1.为什么要学FFmpeg 2.FFmpeg面向对象思想分析 3.FFmpeg各种组件剖析 视频讲解如下,点击观看: [音视频开发系列]一学就会,快速 ...

  8. [看盘技巧]专业短线高手如何快速看盘

    [看盘技巧]专业短线高手如何快速看盘 专业短线高手如何快速看盘 一切理论的东西都必须落实到具体的项目上才能达成最后的成功.下面将详细地阐述快速掌握高明的专业技巧的方法.它们都有明确而合理的次序,请在实 ...

  9. 「PS技巧」教你如何快速抠取红色合同印章,大兵SEO博客

    「PS技巧」:教你如何快速抠取红色合同印章 1.首先需要用PS选取工具框选出要抠取的红印章: 2.然后点击PS菜单选项"选择"-"颜色范围": 3.吸取红印章的 ...

最新文章

  1. 细看晶圆代工之争,纳米制程是什么
  2. php中三个数字由小到大输出,[求助][C语言求助]输入10个数字,并将这些数字由大到小排列...
  3. Optimize Search Results
  4. 2018年全国及31省市数据中心相关政策汇总及解读「全」
  5. 迁移DirectX11到VS2015 Win10
  6. 白帽子发现美军网站SQL注入漏洞,可获取敏感数据
  7. No dashboards are active for the current data set. 解决tensorboard无法启动和显示问题
  8. 安卓应用安全指南 5.2.2 权限和保护级别 规则书
  9. 根据进程名判断该进程是否存在(C++)
  10. 为什么有的人开车舍不得开空调?车载空调耗油吗?
  11. java web容器_java-实现一个简单的java Web容器
  12. 一个老程序员的心里话---想创业的技术人员可以看
  13. AMD的Naples改名为EYPC
  14. 用c语言实现数字时钟课程设计,基于C51单片机的数字时钟课程设计(C语言,带闹钟).doc...
  15. 【廖雪峰python教程学习】——(一)python基础
  16. 关于新手做ASO的一些方法和技巧
  17. python-opencv的一些基础操作
  18. LabVIEW编程LabVIEW开发控制PACE1000精密压力测试仪例程与相关资料
  19. GET 请求能传图片吗?
  20. 教你从零做起谷歌Adsense。开户,过审核,过pin码达到稳定收益

热门文章

  1. 网址保存到桌面快捷方式
  2. 在unity中使用EasyAR插件实现AR效果
  3. Android -- 多媒体播放之MediaPlayer基础简介
  4. 解决Themida加壳程序在VMware虚拟机无法运行问题TheMida Soory, this application cannt run under a Virtual Machine---
  5. 魔幻离现实仅一步之遥:细说Python的循环调用、循环引用和循环导入
  6. ChinaSkills-网络系统管理003(VMware ESXI云平台搭建)
  7. 基于5G技术的智能导航机器人及AR巡逻应用开发项目实施方案(上)
  8. 太强了,全面解析缓存应用经典问题
  9. 大话铁道部12306订票系统云架构
  10. Android手机输入法按键监听-dispatchKeyEvent