• FFmpeg

1.简介

FFmpeg 是视频编解码和编辑框架,同时支持解封装绝大多种视频格式, 支持window,mac和linux等大多数操作系统.

2.视频基础知识

1)视频处理主要包括格式解封装和内容编解码. 解封装是指将视频内容,音频内容和字幕等流信息进行解压缩的过程(demux/mux) 格式编解码主要指视频内容的解压缩过程.(decode/encode)

2)主流视频 文件格式:AVI,MPEG-4,flv,RTMP 图片格式:YUV,WebP 网络传输格式:HLS,RTMP 视频压缩格式:FLV,MPEG-4 part 2 音频压缩格式:AAC

3.内容介绍

1)命令行工具

  • ffmpeg

可以从摄像头和麦克风等工具或者网络和文件获取视频内容,也可以对视频内容进行格式转换,帧率修改,视频剪辑合并,加入字幕滤镜等操作.

  • ffplay

ffmpge的测试播放工具,支持各种播放调试参数和常用播放设置

/Users/jiecao/Downloads/ffplay http://pl3.live.chongdingdahui.com/cddh/online.flv
Input #0, flv, from 'http://pl3.live.chongdingdahui.com/cddh/online.flv':
  Metadata:
    fileSize        : 0
    audiochannels   : 2
    2.1             : false
    3.1             : false
    4.0             : false
    4.1             : false
    5.1             : false
    7.1             : false
    encoder         : obs-output module (libobs version 22.0.2)
  Duration: 00:00:00.00, start: 0.015000, bitrate: N/A
    Stream #0:0: Audio: aac (LC), 48000 Hz, stereo, fltp, 163 kb/s
    Stream #0:1: Video: h264 (High), yuv420p(progressive), 444x960, 2048 kb/s,     nan    :  0.0030 fps, 30 tbr, 1k tbn, 60 tbcB sq=    0B f=0/0   
 148.44 A-V: -0.027 fd=   2 aq=   27KB vq=  229KB sq=    0B f=0/0   

  • ffprobe

网络视频信息探测工具,检测视频格式和视频流信息和内容.

例如:

/Users/jiecao/Downloads/ffprobe https://media.w3.org/2010/05/sintel/trailer.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'https://media.w3.org/2010/05/sintel/trailer.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 1970-01-01T00:00:00.000000Z
    title           : Sintel Trailer
    artist          : Durian Open Movie Team
    encoder         : Lavf52.62.0
    copyright       : (c) copyright Blender Foundation | durian.blender.org
    description     : Trailer for the Sintel open movie project
  Duration: 00:00:52.21, start: 0.000000, bitrate: 669 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 854x480, 537 kb/s, 24 fps, 24 tbr, 24 tbn, 48 tbc (default)
    Metadata:
      creation_time   : 1970-01-01T00:00:00.000000Z
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 126 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01T00:00:00.000000Z
      handler_name    : SoundHandler
/Users/jiecao/Downloads/ffprobe http://pl3.live.chongdingdahui.com/cddh/online.flv      
Input #0, flv, from 'http://pl3.live.chongdingdahui.com/cddh/online.flv':
  Metadata:
    fileSize        : 0
    audiochannels   : 2
    2.1             : false
    3.1             : false
    4.0             : false
    4.1             : false
    5.1             : false
    7.1             : false
    encoder         : obs-output module (libobs version 22.0.2)
  Duration: 00:00:00.00, start: 0.005000, bitrate: N/A
    Stream #0:0: Audio: aac (LC), 48000 Hz, stereo, fltp, 163 kb/s
    Stream #0:1: Video: h264 (High), yuv420p(progressive), 444x960, 2048 kb/s, 30 fps, 30 tbr, 1k tbn, 60 tbc

2)主要库文件

  • libavcodec

视频编解码库

  • libavformat

视频格式解封装

  • libavdevice

视频录制和视频播放终端

  • libavfilter

视频流处理

  1. 其他
    • 函数 文档 http://ffmpeg.org/doxygen/trunk/group__lavf__decoding.html#ga31d601155e9035d5b0e7efedc894ee49
    • 支持联网传输格式 http://ffmpeg.org/general.html#Network-Protocols https://blog.csdn.net/HAOMCU/article/details/7072707