V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
loken2020
V2EX  ›  程序员

《FFmpeg 原理》第一版完成了

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

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

mpegts 可以换成其他流式的封装,如 mkv
GTim
    42
GTim  
   2022-11-14 10:07:57 +08:00
@jifengg 的确,谢谢
Zizpop
    43
Zizpop  
   2022-11-14 10:18:10 +08:00
mark 了, 周末学习学习, 技多不压身.
谢谢题主, 互联网会铭记你
Flylcw
    44
Flylcw  
   2022-11-14 11:02:13 +08:00
学习了,感谢楼主给我们铺的路
acerest
    45
acerest  
   2022-11-14 11:32:08 +08:00
感谢分享!
MXXXXXS
    46
MXXXXXS  
   2022-11-14 11:42:08 +08:00
感谢楼主分享!
296727
    47
296727  
   2022-11-14 13:28:03 +08:00
赞👍
zzxCNCZ
    48
zzxCNCZ  
   2022-11-14 14:03:19 +08:00
感谢楼主分享😋
wodong
    49
wodong  
   2022-11-14 14:07:18 +08:00
感谢楼主分享
asm
    50
asm  
   2022-11-14 16:50:12 +08:00
感谢大佬分享!
zzwyh
    51
zzwyh  
   2022-11-14 17:38:26 +08:00
感谢分享
luozic
    52
luozic  
   2022-11-14 20:02:59 +08:00
感谢分享
shellcmd
    53
shellcmd  
   2022-11-15 00:37:45 +08:00 via Android
我想請教下各位大佬:流媒體 WEB-DL 回來的視頻,在播放器文件屬性裡顯示的是 progressive 逐行掃描,然而播放的時候仍然有隔行掃描的後遺症比如有橫紋,格柵。這個時候可以怎樣快速去隔行?是否有專門的濾鏡幹這事兒,還是犧牲一點碼率和時間重新編碼,又或者不處理視頻,只在播放器裡開啟反交錯?
merlinX
    54
merlinX  
   2022-11-15 08:26:38 +08:00
感谢楼主分享
RangerWolf
    55
RangerWolf  
   2022-11-15 09:55:45 +08:00
楼主写得实在是太好了,有很多基础知识让我查缺补漏
duty
    56
duty  
   2022-11-15 10:38:26 +08:00
为什么最近发现这个 ffmpeg 突然越来越多的进入我的视野,我看了一下,也不是新出来的呀
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   990 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 20:17 · PVG 04:17 · LAX 13:17 · JFK 16:17
Developed with CodeLauncher
♥ Do have faith in what you're doing.