FFmpeg入门之简单介绍_编解码器

FFmpeg是什么意思:  Fast Forward Moving Picture Experts Group

ffmpeg相关文档:

Documentation 

FFmpeg

ffmpeg源码下载:

https://git.videolan.org/git/ffmpeg.git

https://github.com/FFmpeg/FFmpeg.git 

FFmpeg能做什么?

多种媒体格式的封装与解封装 :

1.多种音视频编解码 (如: MP4/FLV/KV/TS)

2.多种协议流媒体 (如:RTMP/RTSP/MMS/HLS)

3.多种色彩格式转换

4.多种采样率转换

5.多种码率转换

FFmpeg有哪些模块:

          AVFormat

          AVCodec

         AVFilter

         AVDevice

         AVUtil

        swresample

        swscale

FFmpeg常用的编解码器:  MPEG4   AAC   MJPEG  H.264(AVC)   H.265(HEVC)

视频滤镜使用:

./ffmpeg -i 输入视频路径  -vf "split [main] [tmp];  [tmp] crop=iw:ih/2:0:0, vflip [flip];  [main] [flip] overlay=0:H/2"  视频路径

视频转换使用:

./ffmpeg -i 输入视频路径   输出视频路径

指定输出格式: 

 ./ffmpeg -i  输入视频路径 -f avi   输出视频路径

FFmpeg转码流程:

打开输入源--->解封装(Demuxing)--->解码(Decoding)--->参数转换--->编码(Encoding)--->封装(Muxing)--->输出目标源

注:如果要源码编译生成ffplay要先安装sdl

使用ffplay播放流:

./ffplay  输入流路径或者地址

查看流信息:

./ffprobe -show_stream 输入流路径或地址

编译FFmpeg:

windows: 

        1.安装MinGW-w64与MSYS

        2. ./configure

        3. make

        4. make install

         5. ./ffmpeg -h

linux/macos:

       1.安装yasm

       2. ./configure

       3. make

       4. make install 

       5. ./ffmpeg -h

编译FFmpeg源码并支持H.264与H.265与AAC

mkdir build

cd build

../configure --enable-libx264 --enable-libx265 --enable-libfdk-aac  --enable-gpl  -enable-nonfree

 查看FFmpeg支持哪些编解码器:

./configure --list-encoders

./configure --list-decoders

查看FFmpeg支持哪些封装与解封装:

./configure --list-muxers

./configure --list-demuxers

查看FFmpeg支持哪些通信协议:

./configure --list-protocols