FFplay文档解读-6-解码器,视频解码器,音频解码器,字幕解码器

前言

Github地址:Github
简书地址:简书
专辑地址:FFplay专辑

7. 解码器

解码器是FFmpeg中配置的元素,允许解码多媒体流。

配置FFmpeg构建时,默认情况下会启用所有受支持的本机解码器。 必须通过相应的--enable-lib选项手动启用需要外部库的解码器。 可以使用configure选项--list-decoders列出所有可用的解码器。

可以使用configure选项--disable-decoders禁用所有解码器,并使用选项--enable-decoder = DECODER / --disable-decoder = DECODER选择性地启用/禁用单个解码器。

ff *工具的选项-decoders将显示已启用的解码器列表。

8. 视频解码器

下面是一些当前可用的视频解码器的描述。

8.1 rawvideo

原始视频解码器。

该解码器解码原始视频流。

8.1.1选项

top top_field_first

指定输入视频的假定字段类型。

类型 解释
-1 视频被假定为渐进式(默认)
0 假设是bottom-field-first
1 假设是top-field-first

9.音频解码器

9.1 ac3

AC-3音频解码器。

该解码器实现了ATSC A / 52:2010和ETSI TS 102 366的一部分,以及未记载的RealAudio 3(a.k.a.dnet)

9.1.1 AC-3 解码器选项

-drc_scale value

动态范围比例因子。 应用于AC-3流的动态范围值的因子。 该因子以指数方式应用。 有3个值得注意的比例因子范围:

比例因子 解释
drc_scale == 0 DRC不可用。 产生全频音频。
0 < drc_scale <= 1 DRC可用。 应用流DRC值的一小部分。 音频再现在全范围和完全压缩之间。
drc_scale > 1 DRC可用。 不对称地应用drc_scale。 响亮的声音被完全压缩。 柔和的声音得到增强。

9.2 flac

FLAC音频解码器。

该解码器旨在实现Xiph的完整FLAC规范。

9.2.1 FLAC 解码器选项

-use_buggy_lpc

lavc FLAC编码器用于生成具有高lpc值的错误流(如默认值)。 此选项可以通过使用lavc的旧错误lpc逻辑进行解码来正确解码此类流。

9.3 ffwavesynth

内波合成器。

该解码器根据预定义的序列生成波形图案。 它的使用纯粹是内部的,它接受的数据格式没有公开记录。

9.4 libcelt

libcelt解码器包装器。

libcelt允许libavcodec解码Xiph CELT超低延迟音频编解码器。 配置期间需要存在libcelt头文件和库。 需要使用--enable-libcelt显式配置构建。

9.5 libgsm

libgsm解码器包装器。

libgsm允许libavcodec解码GSM全速率音频编解码器。 在配置期间需要存在libgsm头文件和库。 您需要使用--enable-libgsm显式配置构建。

该解码器支持普通GSMMicrosoft变体。

9.6 libilbc

libilbc解码器包装器。

libilbc允许libavcodec解码因特网低比特率编解码器(iLBC)音频编解码器。 在配置期间需要存在libilbc头文件和库。 您需要使用--enable-libilbc显式配置构建。

9.6.1 Options

libilbc包装器支持以下选项。

enhance

设置为1时启用解码音频的增强。默认值为0(禁用)。

9.7 libopencore-amrnb

libopencore-amrnb解码器包装器。

libopencore-amrnb允许libavcodec解码自适应多速率窄带音频编解码器。 使用它需要在配置期间存在libopencore-amrnb头文件和库。 您需要使用--enable-libopencore-amrnb显式配置构建。

存在用于AMR-NBFFmpeg本机解码器,因此用户可以在没有该库的情况下解码AMR-NB

9.8 libopencore-amrwb

libopencore-amrwb解码器包装器。

libopencore-amrwb允许libavcodec解码自适应多速率宽带音频编解码器。 使用它需要在配置期间存在libopencore-amrwb头文件和库。 需要使用--enable-libopencore-amrwb显式配置构建。

存在用于AMR-WBFFmpeg本机解码器,因此用户可以在没有该库的情况下解码AMR-WB

9.9 libopus

libopus解码器包装器。

libopus允许libavcodec解码Opus Interactive Audio Codec。 在配置期间需要存在libopus标头和库。 需要使用--enable-libopus显式配置构建。

OpusFFmpeg原生解码器存在,因此用户可以在没有此库的情况下解码Opus

10.字幕解码器

10.1 dvbsub

10.1.1 选项

compute_clut
解释
-1 如果流中没有匹配的CLUT,则计算clut
0 永远不要计算CLUT
1 始终计算CLUT并覆盖流中提供的CLUT
dvb_substream

选择dvb子流,或者所有子流(如果为-1),-1是默认值。

10.2 dvdsub

该编解码器解码DVD中使用的位图字幕; 在VobSub文件对和一些Matroska文件中也可以找到相同的字幕。

10.2.1 选项

palette

指定位图使用的全局调色板。 当存储在VobSub中时,通常在索引文件中指定调色板; 在Matroska中,调色板以与VobSub相同的格式存储在编解码器额外数据中。 在DVD中,调色板存储在IFO文件中,因此在从转储的VOB文件中读取时不可用。

此选项的格式是包含由逗号分隔的1624位十六进制数字(不带0x前缀)的字符串,例如0d00ee,ee450d,101010,eaeaea,0ce60b,ec14ed,ebff0b,0d617a,7b7b7b,d1d1d1,7b2a0e,0d950c, 0f007b,cf0dec,cfa80c,7c127b

ifo_palette

指定从中获取全局调色板的IFO文件(还处于试验阶段)。

forced_subs_only

仅解码标记为强制的字幕条目。 有些标题在同一曲目中有强制和非强制字幕。 将此标志设置为1将仅保留强制字幕。 默认值为0

10.3 libzvbi-teletext

Libzvbi允许libavcodec解码DVB图文电视页面和DVB图文电视字幕。 在配置期间需要存在libzvbi头文件和库。 您需要使用--enable-libzvbi显式配置构建。

10.3.1 选项

txt_page

要解码的图文电视页码列表。 您可以使用特殊*字符串来匹配所有页面。 删除与指定列表不匹配的页面。 默认值为*

txt_chop_top

丢弃顶部的teletext线。 默认值为1

txt_format

指定已解码字幕的格式。 图文电视解码器能够将图文电视页面解码为bitmap(位图)或简单文本,应该将bitmap用于图文电视页面,因为某些图形和颜色不能用简单文本表示。 如果应用程序可以处理基于文本的简单字幕,则可以使用text作为基于图文电视的字幕。 默认值是bitmap

txt_left

生成的位图的X偏移量,默认为0

txt_top

生成的位图的Y偏移量,默认为0

txt_chop_spaces

切换前导和尾随空格并从生成的文本中删除空行。 该选项对于基于图文电视的字幕是有用的,其中在行的开始或结尾处可能存在空白空间,或者由于双倍尺寸的图文电视字符而在字幕行之间可能存在空行。 默认值为1

txt_duration

设置已解码的图文电视页面或字幕的显示持续时间(以毫秒为单位)。 默认值为30000,即30秒。

txt_transparent

强制生成的图文电视位图的透明背景。 默认值为0表示不透明背景。

txt_opacity

设置图文电视背景的不透明度(0-255)。 如果未设置txt_transparent,则它仅影响开始框和结束框之间的字符,通常是字幕。 如果设置了txt_transparent,则默认值为0,否则为255

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,656评论 18 139
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明先生_X自主阅读 15,980评论 3 119
  • 1. 安装编译环境 2. 下载源码 3. 配置选项 通过configure来配置需要编译的ffmpeg库 3.1 ...
    Weller0阅读 1,340评论 2 4
  • 我属于那种不太爱捯饬自己的人,以前总觉得化妆太麻烦;化妆往脸上涂的粉都让皮肤吸收了,特别不健康;还有一条重要的理由...
    可然吧阅读 190评论 2 1
  • 第一次做立体十字绣,做的比较慢,做出来还是很漂亮的,本来应该是纸巾盒,但是太漂亮用来做纸巾盒感觉有点儿浪费,就当作...
    梦浮荏阅读 807评论 8 18