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

1 引言

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

日常技巧之使用FFmpeg进行快速视频压缩和视频片段截取_第1张图片

2 问题描述

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

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

日常技巧之使用FFmpeg进行快速视频压缩和视频片段截取_第2张图片

3 解决方案

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

日常技巧之使用FFmpeg进行快速视频压缩和视频片段截取_第3张图片

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,压缩过程虽然是有损压缩,但是清晰度还是足够使用的,人眼几乎看不出来区别,简直无敌…

日常技巧之使用FFmpeg进行快速视频压缩和视频片段截取_第4张图片 日常技巧之使用FFmpeg进行快速视频压缩和视频片段截取_第5张图片

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的视频,我们查看其大小:

日常技巧之使用FFmpeg进行快速视频压缩和视频片段截取_第6张图片 日常技巧之使用FFmpeg进行快速视频压缩和视频片段截取_第7张图片

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


4 总结

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

您学废了吗?


5 参考

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


关注公众号《AI算法之道》,获取更多AI算法资讯。
在这里插入图片描述

你可能感兴趣的:(ffmpeg,视频处理,视频压缩,视频抽帧)