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

02
问题描述
为了方便的在PPT或其他汇报材料中插入小视频文件,这里指体积小的视频文件,我们可以选择对原始视频进行压缩,让其体积变小.压缩后,视频文件体积小了,所占空间自然就小了,我们的汇报材料所占空间自然而然也就小了.
俗话说的好:工欲善其事,必先利其器.
我们肯定不是第一个遇到此类问题的人呀,我们打开百度,搜索一番.
唉,小度苦人久矣,搜出来摸索半天都是收费软件或者需要实名注册才可以....

03
解决方案
某度搜索折腾了半天,无果遂放弃.突然想起来自己还是个程序员,那就用命令行方式来解决吧.
这里给大家安利FFmpeg库来做视频压缩,速度贼拉拉地快....
1) 安装
ffmpeg库在ubuntu上的安装方式贼简单,使用以下命令即可安装:
sudo apt-get updatesudo apt-get install ffmpeg
安装后执行以下命令进行验证:
ffmpeg -version
输出以下信息,则证明安装成功:
ffmpeg version 2.8.17-0ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developersbuilt with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 20160609
2) 视频压缩
FFmpeg是一套可以用来记录 转换数字音频和视频,并能将其转化为流的开源计算机程序.它提供了录制 转换以及流化音视频的完整解决方案.
嗯嗯, 接下来我们使用以下命令来执行视频压缩:
ffmpeg -i input.mp4 -vcodec h264 -acodec mp2 output.mp4ffmpeg –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,压缩过程虽然是有损压缩,但是清晰度还是足够使用的,人眼几乎看不出来区别,简直无敌....

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

