FFmpeg简介

FFmpeg的官网,功能强大是每位学习音视频开发者所必须掌握的。

命令行简述

ffmpeg -i /Users/twin/Desktop/input.mp4 -r 24 output.mp4

ffmpeg version git-2019-11-09-bb190de Copyright (c) 2000-2019 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.8)
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-appkit --enable-avfoundation --enable-coreimage --enable-audiotoolbox
  libavutil      56. 35.101 / 56. 35.101
  libavcodec     58. 60.100 / 58. 60.100
  libavformat    58. 34.101 / 58. 34.101
  libavdevice    58.  9.100 / 58.  9.100
  libavfilter     7. 66.100 /  7. 66.100
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/twin/Desktop/input.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.58.101
  Duration: 00:00:10.75, start: 0.000000, bitrate: 528 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 384x640, 488 kb/s, 24 fps, 24 tbr, 12288 tbn, 96 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 48 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0x7fa98a811600] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7fa98a811600] profile High, level 3.0, 4:2:0, 8-bit
[libx264 @ 0x7fa98a811600] 264 - core 158 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.34.101
    Stream #0:0(und): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 384x640, q=-1--1, 24 fps, 12288 tbn, 24 tbc (default)
    Metadata:
      handler_name    : VideoHandler
      encoder         : Lavc58.60.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      encoder         : Lavc58.60.100 aac
frame=  136 fps=0.0 q=28.0 size=       0kB time=00:00:05.92 bitrate=   0.1kbits/frame=  249 fps=247 q=28.0 size=     512kB time=00:00:10.65 bitrate= 393.6kbits/frame=  250 fps=209 q=-1.0 Lsize=     862kB time=00:00:10.72 bitrate= 658.1kbits/s speed=8.96x    
video:683kB audio:170kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.068347%
[libx264 @ 0x7fa98a811600] frame I:3     Avg QP:22.22  size:  6281
[libx264 @ 0x7fa98a811600] frame P:72    Avg QP:23.72  size:  4758
[libx264 @ 0x7fa98a811600] frame B:175   Avg QP:25.33  size:  1928
[libx264 @ 0x7fa98a811600] consecutive B-frames:  1.2%  9.6% 20.4% 68.8%
[libx264 @ 0x7fa98a811600] mb I  I16..4: 17.2% 78.9%  4.0%
[libx264 @ 0x7fa98a811600] mb P  I16..4:  9.5% 38.3%  1.0%  P16..4: 35.2%  9.3%  2.1%  0.0%  0.0%    skip: 4.7%
[libx264 @ 0x7fa98a811600] mb B  I16..4:  1.8%  5.3%  0.1%  B16..8: 45.5%  5.4%  0.4%  direct: 2.5%  skip:39.1%  L0:46.3% L1:50.5% BI: 3.3%
[libx264 @ 0x7fa98a811600] 8x8 transform intra:77.3% inter:92.8%
[libx264 @ 0x7fa98a811600] coded y,uvDC,uvAC intra: 44.0% 72.9% 7.1% inter: 12.1% 26.3% 0.1%
[libx264 @ 0x7fa98a811600] i16 v,h,dc,p: 20% 16%  5% 60%
[libx264 @ 0x7fa98a811600] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 15% 14%  6%  8%  9%  8% 10%  5%
[libx264 @ 0x7fa98a811600] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 29% 16% 11%  6% 11%  9%  7%  8%  3%
[libx264 @ 0x7fa98a811600] i8c dc,h,v,p: 49% 19% 21% 11%
[libx264 @ 0x7fa98a811600] Weighted P-Frames: Y:6.9% UV:4.2%
[libx264 @ 0x7fa98a811600] ref P L0: 66.6% 12.1% 15.2%  5.6%  0.4%
[libx264 @ 0x7fa98a811600] ref B L0: 92.2%  6.4%  1.5%
[libx264 @ 0x7fa98a811600] ref B L1: 98.1%  1.9%
[libx264 @ 0x7fa98a811600] kb/s:536.73
[aac @ 0x7fa98a812e00] Qavg: 955.508
  • ffmpeg:包含FFmpeg的各种功能,如GIF、格式转换、截图、编解码等。
  • ffmpeg-all:包含FFmpeg工具及FFmpeg组件。
  • ffplay:一个使用FFmpeg和SDL库的、简单的、可移植的媒体播放器
  • ffplay-all:包含ffplay工具及FFmpeg组件。
  • ffprobe:用来查多媒体信息。
  • ffprobe-all:包含ffprobe工具及FFmpeg组件。
  • ffserver:与流媒体服务器有关,负责响应客户端的流媒体请求,把流媒体数据发送给客户端。
  • ffserver-all:包含ffserver工具及FFmpeg组件。
    组件概述
  • Utilities:libavutils提供的通用的features及工具
  • Video scaling and pixel format converter:视频缩放和像素格式转换
  • Audio resampler:音频重新取样
  • Encoders and decoders:编码和解码
  • Bitstream filters:码流过滤器
  • Muxers and demuxers:数据合成及数据分离
  • Protocol:协议
  • Input and output devices:输入和输出设备
  • Filters:过滤器
    类库概述
  • libavutil:包含一些公共的工具函数的使用库
  • libswscale:原视频比列缩放、色彩映射转换、图像颜色空间或格式转换(RGB565、RGB888等与YUV420等之间的转换)
  • libswresample:原始音频格式转码
  • libavcodec:编解码(核心库)
  • libavformat:音视频封装格式的生成和解析
  • libavdevice:硬件采集、加速、显示
  • libavfilter:音视频数据做一些效果处理如去色调、模糊、水平翻转、裁剪、加方框、叠加文字等功能。
  • libswresample:音视频封装编解码格式预设等
  • libpostproc:后期效果处理(图像的去块效应)

FFMPEG源码目录结构

\color{#FF0000}{未完待续...}

©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容