loken2020
V2EX  ›  程序员

《FFmpeg 原理》第一版完成了

By loken2020 at 2022 年 11 月 13 日 · 11783 次点击
本书《 FFmpeg 原理》主要讲解 FFmpeg 原理性的知识,前面几章主要讲解一些音视频开发的基础知识,例如原始数据 YUV 跟 RGB ,封装格式 FLV 跟 MP4 ,压缩编码的基本概念,还有封装格式分析。

前面几章是音视频开发,流媒体技术的基础,后面的章节主要讲解如何搭建 FFmpeg 各种调试环境,同时提供 FFmpeg API 函数的使用示例,最重要的是 分析 ffmpeg.c 跟 ffplay.c 的源码逻辑。

虽然官方没有提供太详细的 API 函数文档教程,但是官方提供了 ffmpeg.c 文件 ,大部分的 API 函数使用方法,都在这个文件的源码里面。

基本上你用到的 FFmpeg 命令行 的所有功能,都是在 ffmpeg.c 里面实现的。包括 转换封装格式,转换编码格式,单独提取音频数据,给视频加滤镜 ,等等这些功能,都是在 ffmpeg.c 里面实现的。

本书会用大量章节来分析 ffmpeg.c 里面的内部逻辑,让读者能从 整体上 理解 FFmpeg API 的使用。对 FFmpeg API 形成系统的理解之后,即便新版本的 FFmpeg 修改了 API 函数的用法,你也能从 ffmpeg.c 里面快速学会新版本的 API 函数的用法。

https://ffmpeg.xianwaizhiyin.net/
56 条回复  •  2022-11-15 10:38:26 +08:00
Syiize
   1
Syiize  
   2022 年 11 月 13 日 via Android
感谢楼主分享😋
yemoluo
   2
yemoluo  
   2022 年 11 月 13 日
感谢楼主分享,我有一个问题:Ffplay 定制下可以实时预览 Ffmpeg 的那些特效么?
loken2020
   3
loken2020  
OP
   2022 年 11 月 13 日
@GTim 有一些特效滤镜可以,ffplay 本身有 -vf 选项来定义滤镜,不过 ffplay 支持的滤镜有限,只支持简单滤镜,复杂滤镜不支持。
book1925
   4
book1925  
   2022 年 11 月 13 日
感谢分享
Verdure
   5
Verdure  
   2022 年 11 月 13 日
感谢分享
feather12315
   6
feather12315  
   2022 年 11 月 13 日 via Android
牛,感谢分享
Ranler
   7
Ranler  
   2022 年 11 月 13 日
感谢分享
whywaoxaks
   8
whywaoxaks  
   2022 年 11 月 13 日
FFmpeg 原理,不应该是《信源编码》课本么?😂
closedevice
   9
closedevice  
   2022 年 11 月 13 日
很不错。。。支持
yemoluo
   10
yemoluo  
   2022 年 11 月 13 日
@loken2020 那些大厂的视频编辑的预览,是不是在 ffplay 上定制的呢?感觉只能自己去定制了
ieliwb
   11
ieliwb  
   2022 年 11 月 13 日
为楼主的奉献点赞
loken2020
   12
loken2020  
OP
   2022 年 11 月 13 日
@GTim 视频编辑,剪辑软件,一般不是基于 ffplay 改的。你可以看一下 MLT 多媒体编辑框架,github.com/mltframework/mlt
wildlynx
   13
wildlynx  
   2022 年 11 月 13 日
谢谢分享
SUP7R9
   14
SUP7R9  
   2022 年 11 月 13 日 via Android
感谢分享
wangzhiyu
   15
wangzhiyu  
   2022 年 11 月 13 日
👍
nong99
   16
nong99  
   2022 年 11 月 13 日 via Android
谢谢分享
freefcw
   17
freefcw  
   2022 年 11 月 13 日
楼主很赞!
mangoDB
   18
mangoDB  
   2022 年 11 月 13 日
感谢分享
lifeintools
   19
lifeintools  
   2022 年 11 月 13 日
感谢分享
cssk
   20
cssk  
   2022 年 11 月 13 日 via iPhone
想请教一下楼主,rgb888 的 uvc ,为什么有些播放器图像是正的,有些是倒的,amcap ,vlc 之类表现不一样
m1ng
   21
m1ng  
   2022 年 11 月 13 日
感谢分享
wpei
   22
wpei  
   2022 年 11 月 13 日
最近正接触到这方面,刚好想去学习一下,感谢分享
610915518
   23
610915518  
   2022 年 11 月 13 日
感谢分享
safari9
   24
safari9  
   2022 年 11 月 13 日
学习下,感谢分享
MrKrabs
   25
MrKrabs  
   2022 年 11 月 13 日
谢谢分享
kevinlia0
   26
kevinlia0  
   2022 年 11 月 13 日
感谢分享,楼主很赞!!👍🏻
ijrou
   27
ijrou  
   2022 年 11 月 13 日
牛,感谢分享
liuguang
   28
liuguang  
   2022 年 11 月 13 日
好东西啊,感谢分享
newlifeinsc
   29
newlifeinsc  
   2022 年 11 月 13 日
感谢分享,没接触过音视频开发,以后学的时候来看
dream4ever
   30
dream4ever  
   2022 年 11 月 13 日
多谢分享,超级干货。
fenmuer
   31
fenmuer  
   2022 年 11 月 13 日
感谢分享
a90120411
   32
a90120411  
   2022 年 11 月 13 日
感谢分享!
lidalu
   33
lidalu  
   2022 年 11 月 13 日 via Android
感谢分享
keenkiller
   34
keenkiller  
   2022 年 11 月 13 日
为啥还在用 msys2 ,直接 wsl2 走起啊
dobelee
   35
dobelee  
   2022 年 11 月 13 日
感谢分享
lukaz
   36
lukaz  
   2022 年 11 月 13 日
感谢分享
lzynb
   37
lzynb  
   2022 年 11 月 13 日
感谢大佬分享
SP00F
   38
SP00F  
   2022 年 11 月 14 日
感谢分享,另外不知道有没有提供 PDF 版?碎片时间方便 iPad 阅读 😃
loken2020
   39
loken2020  
OP
   2022 年 11 月 14 日
@SP00F 没有 PDF
jifengg
   40
jifengg  
   2022 年 11 月 14 日
点个赞。我作为只会使用 ffmpeg.exe 的人来说,实在是佩服楼主。
jifengg
   41
jifengg  
   2022 年 11 月 14 日
@GTim 我在 windows 下使用 ffmpeg.exe 时,是如何预览效果的:

ffmpeg <...> -f mpegts - | ffplay -

mpegts 可以换成其他流式的封装,如 mkv
yemoluo
   42
yemoluo  
   2022 年 11 月 14 日
@jifengg 的确,谢谢
Zizpop
   43
Zizpop  
   2022 年 11 月 14 日
mark 了, 周末学习学习, 技多不压身.
谢谢题主, 互联网会铭记你
Flylcw
   44
Flylcw  
   2022 年 11 月 14 日
学习了,感谢楼主给我们铺的路
acerest
   45
acerest  
   2022 年 11 月 14 日
感谢分享!
MXXXXXS
   46
MXXXXXS  
   2022 年 11 月 14 日
感谢楼主分享!
296727
   47
296727  
   2022 年 11 月 14 日
赞👍
zzxCNCZ
   48
zzxCNCZ  
   2022 年 11 月 14 日
感谢楼主分享😋
wodong
   49
wodong  
   2022 年 11 月 14 日
感谢楼主分享
asm
   50
asm  
   2022 年 11 月 14 日
感谢大佬分享!
zzwyh
   51
zzwyh  
   2022 年 11 月 14 日
感谢分享
luozic
   52
luozic  
   2022 年 11 月 14 日
感谢分享
shellcmd
   53
shellcmd  
   2022 年 11 月 15 日 via Android
我想請教下各位大佬:流媒體 WEB-DL 回來的視頻,在播放器文件屬性裡顯示的是 progressive 逐行掃描,然而播放的時候仍然有隔行掃描的後遺症比如有橫紋,格柵。這個時候可以怎樣快速去隔行?是否有專門的濾鏡幹這事兒,還是犧牲一點碼率和時間重新編碼,又或者不處理視頻,只在播放器裡開啟反交錯?
merlinX
   54
merlinX  
   2022 年 11 月 15 日
感谢楼主分享
RangerWolf
   55
RangerWolf  
   2022 年 11 月 15 日
楼主写得实在是太好了,有很多基础知识让我查缺补漏
duty
   56
duty  
   2022 年 11 月 15 日
为什么最近发现这个 ffmpeg 突然越来越多的进入我的视野,我看了一下,也不是新出来的呀
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
© 2026 V2EX · 101ms · 3.9.8.5