FFmpeg自学入门笔记

命令行

PS:我自己使用过的命令行,便于自己查阅和使用FFmpeg。

1.转格式

ffmpeg -i input.mp4 output.avi

2.转分辨率

ffmpeg -i in.mp4 -vf scale=640:480 -qscale 9 out.mp4
注:-qscale参数表示图像质量,1是最高质量。


《FFmpeg》

FFmpeg是一种完整的跨平台解决方案,用于录制,转换和流式传输音频和视频。

FFMPEG分为3个版本:Static,Shared,Dev。
前两个版本可以直接在命令行中使用,他们的区别在于:Static里面只有3个应用程序:ffmpeg.exe,ffplay.exe,ffprobe.exe,每个exe的体积都很大,相关的Dll已经被编译到exe里面去了。Shared里面除了3个应用程序:ffmpeg.exe,ffplay.exe,ffprobe.exe之外,还有一些Dll,比如说avcodec-54.dll之类的。Shared里面的exe体积很小,他们在运行的时候,到相应的Dll中调用功能。
Dev版本是用于开发的,里面包含了库文件xxx.lib以及头文件xxx.h,这个版本不包含exe文件。
打开系统命令行接面,切换到ffmpeg所在的目录,就可以使用这3个应用程序了。

ffmpeg是用于转码的应用程序。(ffmpeg详细的使用说明(英文):http://ffmpeg.org/ffmpeg.html)
具体的使用方法可以参考:雷霄骅 ffmpeg参数中文详细解释(https://blog.youkuaiyun.com/leixiaohua1020/article/details/12751349)

ffplay是用于播放的应用程序。(详细的使用说明(英文):http://ffmpeg.org/ffplay.html)

ffprobe是用于查看文件格式的应用程序。(详细的使用说明(英文):http://ffmpeg.org/ffprobe.html)

FFmpeg为开发人员提供的库:

libavutil是一个包含简化编程功能的库,包括随机数生成器,数据结构,数学例程,核心多媒体实用程序等等。
libavcodec是一个包含用于音频/视频编解码器的解码器和编码器的库。
libavformat是一个包含多媒体容器格式的解复用器和复用器的库。
libavdevice是一个包含输入和输出设备的库,用于从许多常见的多媒体输入/输出软件框架中获取和呈现,包括Video4Linux,Video4Linux2,VfW和ALSA。
libavfilter是一个包含媒体过滤器的库。
libswscale是一个执行高度优化的图像缩放和色彩空间/像素格式转换操作的库。
libswresample是一个执行高度优化的音频重采样,重新矩阵化和样本格式转换操作的库。

一、视频编码基础

视音频基础知识:(自行百度)
1.视频播放器原理
2.封装格式(MP4,RMVB,TS,FLV,AVI)
这里补充一下mp4封装学习记录:
在这里插入图片描述
3.视频编码数据(H.264,MPEG2,VC-1)
在这里插入图片描述
4.音频编码数据(AAC,MP3,AC-3)
5.视频像素数据(YUV420P,RGB)
6.音频采样数据(PCM)

二、FFmpeg_4.1编译安装

依赖项:

$ sudo apt-get install libgtk2.0-dev  libjpeg.dev libjasper-dev yasm
#依赖:mfx_dispatch,需要源码编译
$ git clone https://github.com/lu-zero/mfx_dispatch.git
$ cd mfx_dispatch/
$ mkdir build
$ cd build/
$ cmake -D__ARCH:STRING=intel64 ..
$ make -j12
$ sudo make install
#接下来要修改:/usr/lib/pkgconfig/libmfx.pc
$ gedit /usr/lib/pkgconfig/libmfx.pc
#原:
Name: libmfx
Description: Intel(R) Media SDK Dispatcher by Toson
Version: 1.27
prefix=/opt/intel/mediasdk
libdir=/opt/intel/mediasdk/lib
includedir=/opt/intel/mediasdk/include
Libs: -L${libdir} -lmfx -lstdc++ -ldl -lrt -lva -lva-drm
Cflags: -I${includedir}
#修改为:
Name: libmfx
Description: Intel(R) Media SDK Dispatcher by Toson
Version: 1.27
prefix=/usr/local
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include
Libs: -L${libdir} -lmfx -ldispatch_shared -lva -lva-drm -lsupc++ -lstdc++
-ldl
Cflags: -I${includedir}

FFmpeg编译:

$ mkdir build
$ 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值