- 页 数
- 275页
- 作 者
- 刘歧
- 定 价
- 69元
- 装 帧
- 平装
- 书 名
- FFmpeg从入门到精通
- 出版时间
- 2018年4月
- 开 本
- 16开
- 出版社
- 机械工业出版社
- ISBN
- 9787111592204
-
2021-12-08 17:29:54
转码命令 ./ffmpeg -i input.mp4 -f avi output.avi
ffmpeg -formats 查看支持的格式
ffprobe 多媒体分析器 ./fprobe -shoe_streams output.avi 查询视频信息
configure --help 查看所需要的第三放外部库 /编解码
./configure --list-encoders 查看可包含的编码
./configure --list-decoders 查看可包含的解码
./configure --list-muxers 查看可支持的封装格式
./configure --list-Demuxers 查看可支持的解封装格式
./configure --list-protocols 查看可支持的流媒体协议
更多相关内容 -
FFmpeg入门到精通.pdf
2019-06-19 14:32:11FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了目前领 先的音/视频编码库 libavcodec。 FFmpeg 是在 Linux 下开发出来的,但它可以在包括 Windows 在内的大多数操作系... -
推荐书籍:FFmpeg从入门到精通
2021-12-07 16:42:15第一部分部分(第1~7章)为FFmpeg的命令行使用篇,介绍了FFmpeg的基础组成部分、FFmpeg工具使用、FFmpeg的封装操作、FFmpeg的转码操作、FFmpeg的流媒体操作、FFmpeg的滤镜操作、FFmpeg的设备操作。 第二部分(第8...本书是一本介绍FFmpeg的实战技术指南,全书共10章,分为两个部分。
第一部分部分(第1~7章)为FFmpeg的命令行使用篇,介绍了FFmpeg的基础组成部分、FFmpeg工具使用、FFmpeg的封装操作、FFmpeg的转码操作、FFmpeg的流媒体操作、FFmpeg的滤镜操作、FFmpeg的设备操作。
第二部分(第8~10章)为FFmpeg的API使用篇,介绍了FFmpeg封装部分的API使用操作、FFmpeg编解码部分的API使用操作,FFmpeg滤镜部分的API使用操作,相关操作均以实例方式进行说明,包括新API及旧API的操作。
-
《FFmpeg从入门到精通》读书笔记(一)
2019-06-18 19:47:32最近在读《FFmpeg从入门到精通》这本书,结合着雷神的博客,学习音视频的知识~ 在学习的过程中,也记录了一些摘要。因为是边看边记的,所以一些要点在看到后面的时候,需要反过来整理前面的。我用有道云笔记写的...写在前面
最近在读《FFmpeg从入门到精通》这本书,结合着雷神的博客,学习音视频的知识~ 在学习的过程中,也记录了一些摘要。因为是边看边记的,所以一些要点在看到后面的时候,需要反过来整理前面的。我用有道云笔记写的markdown没法加图片,所以就先把这部分发了出来。后续会针对内容和排版一步步的优化,如果你被这凌乱的内容辣到了眼睛,请谅解哈哈哈~
2019.06.18
第一章 FFmpeg简介
第二章 FFmpeg工具使用基础
简介
书中开头用几个实例操作,让读着对FFmpeg的操作有一个直观的认识。例如以下的几个方法:
纵向镜像反转一半
ffmpeg -i 1.jpg -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip];[main][flip] overlay=0:H/2" 2.jpg
上面操作的含义:将图片分为main和tmp两部分,截取tmp的上半部分,反转,合并时位置在下半部分原图
效果图
ffmpeg -i input.mp4 output.avi -> ffmpeg -i input.mp4 -f avi out.dat
ffmpeg的主要工作流程
1 解封装 Demuxing
2 解码 Decoding
3 编码 Encoding
4 封装 Muxing其中需要经过六个步骤
1 读取输入源
2 进行音视频的解封装 (调用libavformat中的接口实现)
3 解码每一帧音视频数据 (调用libavcodec中的接口实现)
3.5 转换参数
4 编码每一帧音视频数据(调用libavcodec中的接口实现)
5 进行音视频重新封装(调用libavformat中的接口实现)
6 输出到目标除了ffmpeg(提供转码、转封装等功能),还有ffplay(负责播放相关)和ffprobe(多媒体分析器)
ffprobe -show_streams 1.mp4
ffmpeg常用命令
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
ffmpeg的查询
ffmpeg -decoders (类似:ffmpeg --encoders)
Decoders:
V… = Video
A… = Audio
S… = Subtitle
.F… = Frame-level multithreading
…S… = Slice-level multithreading
…X… = Codec is experimental
…B. = Supports draw_horiz_band
…D = Supports direct rendering method 1
V…D 012v Uncompressed 4:2:2 10-bit
V…D 4xm 4X Movie
V…D 8bps QuickTime 8BPS video
V…D aasc Autodesk RLE
V…D aic Apple Intermediate Codec
V…D alias_pix Alias/Wavefront PIX image
V…D amv AMV Video
V…D anm Deluxe Paint Animation
V…D ansi ASCII/ANSI art
VF…D apng APNG (Animated Portable Network Graphics) image第一列包含6个字段,第一个字段用来表示此编码器为音频、视频还是字幕,第二个字段表示帧级别的多线程支持,第三个字段表示段级别的多线程,第四个字段表示该编码器为实验版本,第五个字段表示draw horiz band模式支持,第六个字段表示直接渲染模式支持
第二列是编码格式
第三列是编码格式的详细说明ffmpeg -filters (滤镜)
… acrossfade AA->A Cross fade two input audio streams.
T… adelay A->A Delay one or more audio channels.
… aecho A->A Add echoing to the audio.
… aeval A->A Filter audio signal according to a specified expression.
T… afade A->A Fade in/out input audio.
… aformat A->A Convert the input audio to one of the specified formats.
… ainterleave N->A Temporally interleave audio inputs.
… allpass A->A Apply a two-pole all-pass filter.
… amerge N->A Merge two or more audio streams into a single multi-channel stream.
… amix N->A Audio mixing.
… anull A->A Pass the source unchanged to the output.
T… apad A->A Pad audio with silence.
… aperms A->A Set permissions for the output audio frame.
… aphaser A->A Add a phasing effect to the audio.
… aresample A->A Resample audio data.
… areverse A->A Reverse an audio clip.
… aselect A->N Select audio frames to pass in output.
… asendcmd A->A Send commands to filters.
… asetnsamples A->A Set the number of samples for each output audio frames.
… asetpts A->A Set PTS for the output audio frame.
… asetrate A->A Change the sample rate without altering the data.
… asettb A->A Set timebase for the audio output link.
… ashowinfo A->A Show textual information for each audio frame.
… asplit A->N Pass on the audio input to N audio outputs.
… astats A->A Show time domain statistics about audio frames.
… astreamsync AA->AA Copy two streams of audio data in a configurable order.
… asyncts A->A Sync audio data to timestamps
…C atempo A->A Adjust audio tempo.
… atrim A->A Pick one continuous section from the input, drop the rest.
… azmq A->A Receive commands through ZMQ and broker them to filters.
… bandpass A->A Apply a two-pole Butterworth band-pass filter.
… bandreject A->A Apply a two-pole Butterworth band-reject filter.
… bass A->A Boost or cut lower frequencies.
… biquad A->A Apply a biquad IIR filter with the given coefficients.
… bs2b A->A Bauer stereo-to-binaural filter.
… channelmap A->A Remap audio channels.
… channelsplit A->N Split audio into per-channel streams.
… chorus A->A Add a chorus effect to the audio.
… compand A->A Compress or expand audio dynamic range.
T… dcshift A->A Apply a DC shift to the audio.
… dynaudnorm A->A Dynamic Audio Normalizer.
… earwax A->A Widen the stereo image.
… ebur128 A->N EBU R128 scanner.
… equalizer A->A Apply two-pole peaking equalization (EQ) filter.
… flanger A->A Apply a flanging effect to the audio.
… highpass A->A Apply a high-pass filter with 3dB point frequency.
… join N->A Join multiple audio streams into multi-channel output.
…C ladspa N->A Apply LADSPA effect.
… lowpass A->A Apply a low-pass filter with 3dB point frequency.
… pan A->A Remix channels with coefficients (panning).
… replaygain A->A ReplayGain scanner.
… resample A->A Audio resampling and conversion.
… sidechaincompress AA->A Sidechain compressor.
… silencedetect A->A Detect silence.
… silenceremove A->A Remove silence.
… treble A->A Boost or cut upper frequencies.
T.C volume A->A Change input volume.(首先请原谅我的弟弟排版,尽力了。。)
第一列总共有三个字段,第一个字段是时间轴支持,第二个字段是分片线程处理支持,第三个字段是命令支持
第二列是滤镜名
第三列是转换方式,如音频转音频,视频转视频,创建音频,创建视频等
第四列是滤镜作用说明查看ffmpeg支持的具体某一种demuxer、muxer类型,可以通过ffmpeg -h查看该类型的详细参数
ffmpeg -h muxer=flv
Muxer flv [FLV (Flash Video)]:
Common extensions: flv.
Mime type: video/x-flv.
Default video codec: flv1.
Default audio codec: mp3.ffmpeg的封装转换 (参数 书P37)
ffmpeg的基本转码原理
ffmpeg工具的主要用途为编码、解码、转码以及媒体格式转换。
ffmpeg -i 1.mp4 -vcodec mpeg4 -b:v 200k -r 15 -an output2.avi
以上命令中参数含义:
1.转封装格式从mp4转为avi
2.视频编码从h264转换为mpeg4格式
3.视频码率从原来的16278 kb/s转换为200 kb/s
4.视频帧率从原来的24.15 fps转换为15 fps
5.转码后的文件不包括音频(-an参数)ffprobe常用命令
ffmpeg-多媒体处理工具 ffprobe-多媒体查看工具
ffprobe -show_packets 1.mp4
ffprobe -show_format 1.mp4
ffprobe -show_frames 1.mp4
[FRAME]
media_type=video 帧的类型
stream_index=0 帧所在的索引区域
key_frame=1 是否为关键帧
pkt_pts=0 Frame包的pts
width=1080 帧显示的宽度
height=2248 帧显示的高度
pix_fmt=yuv420p 帧的图像色彩格式
pict_type=I 帧类型
[/FRAME]ffprobe -show_streams 1.mp4
[STREAM]
index=0 流所在的索引区域
codec_name=h264 编码名
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 编码全名
profile=Baseline 编码的profile
codec_type=video 编码类型
codec_time_base=1/180000 编码的时间戳计算基础单位
codec_tag_string=avc1 编码的标签数据
coded_width=1088 图像的宽度
coded_height=2256
has_b_frames=0 包含B帧的信息
pix_fmt=yuv420p 图像显示的色彩格式
r_frame_rate=145/6 实际帧率
avg_frame_rate=5000/207 平均帧率
time_base=1/90000 事件基数(用来进行timestamp计算)
bit_rate=16278017 码率
max_bit_rate=N/A 最大码率
nb_frames=165 帧数
[/STREAM]ffprobe默认使用key-value的格式输出,可以通过-of xml(ini,json,csv,flat)来进行相应的格式输出,例如:
ffprobe -of json -show_streams 1.mp4
-select_streams可以选择值馋看音频(a)、视频(v)、字幕(s)信息
ffprobe -show_frames -select_streams v -of json 1.mp4
ffplay
可以作为播放器,也可以作为很多音视频数据的图形化分析工具,通过ffplay可以看到视频图像的运动估计方向、音频数据的波形等
参数:
x 强制设置视频显示窗口的宽度
y
s 设置视频显示的宽高
fs 强制全屏显示
an 屏蔽音频
vn 屏蔽视频
sn 屏蔽字幕
ss 根据设置的秒进行定位拖动
t 设置播放视频/音频的长度
bytes 设置定位拖动的策略,0为不可拖动,1为可拖动,-1为自动
nodisp 关闭图形化显示窗口
f 强制使用设置的格式进行解析
window_title 设置显示窗口的标题
af 设置音频的滤镜
codec 强制使用设置的codec进行解码
autorotate 自动旋转视频可视化分析工具
ffplay -showmode 1 1.mp3 ffplay -vismv pf 1.mp4 查看B帧和P帧的预测信息
pf P帧向前运动估计显示
bf B帧向前运动估计显示
bb B帧向后运动估计显示
播放器如何解码每个宏块
ffplay -debug vis_mb_type 1.mp4
-
ffmpeg从入门到精通 下载_从入门到精通nginx——Nginx的下载和环境安装
2020-11-20 16:08:24Nginx的下载 nginx的官网:http://nginx.org/ 百度云盘地址https://pan.baidu.com/s/1kjQST_x1Sf_thg3XDmqx6w 密码:18sc将nginx上传至linux环境搭建安装C语言环境 因为nginx是C语言写的,而且是源码安装,...Nginx的下载
nginx的官网:http://nginx.org/
百度云盘地址
https://pan.baidu.com/s/1kjQST_x1Sf_thg3XDmqx6w 密码:18sc
将nginx上传至linux
环境搭建
安装C语言环境
因为nginx是C语言写的,而且是源码安装,安装前需安装C语言环境。
安装依赖库
基本的Nginx功能依赖于一些基本的库,在安装Nginx之前需要提前安装这些库。
pcre-devel:pcre,Perl Compatible Regular Expressions,Perl脚本语言兼容正则表达式,为Nginx提供正则表达式库。
openssl-devel:为Nginx提供SSL(安全套接字层)密码库,包含主要的密码算法,常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其他目的使用。
在安装之前需要注意,很多库具有devel库与非devel库两种。devel库表示development开发库,比非devel库会多出一些头文件、静态库、源码包等。而这些包在运行时不可能用到,但在开发时有可能用到。所以对于程序员来说,一般都是需要安装devel库的。不过在yum安装devel库时,由于其依赖于非devel库,所以其会先自动安装非devel库,而后再安装devel库。所以真正安装时,只需显示的安装devel库即可。
解压Nginx包
进入刚才解压后的目录
查看帮助(可忽略)
安装模块
此时Nginx解压路径下会多出一个:Makefile
系统配置信息
- path prefix:Nginx安装目录
- binary file:Nginx命令文件
- modules path:Nginx模块存放路径
- configuration - prefix:Nginx配置文件存放路径
- configuration file:Nginx配置文件名
- pid file:Nginx的进程id文件
- error log file:错误日志文件
- http access log file:http访问日志文件
- http xxx:其他http请求相关的文件
配置成功后,再次查看Nginx解压目录,发现其中多出一个文件Makefile。后面的编译就是依靠该文件进行的。
编译安装
这是两个命令,make:为编译命令;make install:为安装命令,可以分别执行。这里使用&&将两个命令连接执行,会在前面命令执行成功的前提下才会执行第二个命令。
编译安装完成后,会在/usr/local下出现nginx目录
进入安装目录
设置任务目录可以使用sbin(可忽略)
注:软链接建立完成后就可以在任意路径下使用nginx命令
-
FFmpeg从入门到精通笔记之二
2019-04-22 21:03:59FFmpeg中常用的工具主要是ffmpeg、ffprobe、ffplay,它们分别用作多媒体的编解码工具、内容分析工具和播放器。 ffmpeg常用命令 ffmpeg的封装转换。ffmpeg的封装转换(转封装)功能包含在AVFormat模块中,通过... -
FFmpeg从入门到精通(一)
2019-05-14 18:10:51FFmpeg介绍 FFmpeg既是一种音视频编解码工具,也是一组音视频解码开发套件。作为编解码开发套件,它为开发者提供了丰富的音视频处理的调用接口。 FFmpeg基本组成 先看图,再看字。 FFmpeg的封装模块 AVFormat ... -
ffmpeg入门到精通
2021-06-13 11:50:51FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案,本节课程将带领新手进入ffmpeg的世界 -
《FFmpeg从入门到精通》读书笔记(三)
2019-06-20 23:54:05FFmpeg本身不支持H.264的编码器,是由FFmpeg的第三方模块对其进行支持,当前常用的编码器为x264,所支持的像素格式主要包括以下几种(使用ffmpeg -h encoder=libx264进行查询) Encoder libx264 [l... -
FFMPEG完美入门资料最新
2017-11-24 14:23:05封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。例如,FLV格式的数据,经过解封装操作后,输出H.264编码的视频码流和AAC编码的... -
《FFmpeg从入门到精通》读书笔记(五)
2019-06-24 23:25:50第六章 FFmpeg滤镜使用(至 6.5 结束) FFmpeg滤镜使用 FFmpeg滤镜Filter描述格式 参数排列方式 [输入流或标记名] 滤镜参数 [临时标记名]; [输入流或标记名] 滤镜参数 [临时标记名]... 例如:输入两个文件,一个... -
FFmpeg从入门到精通——进阶篇,SEI那些事儿
2020-09-12 08:46:00来源:金山云,作者 | 阿曾前言在直播应用的开发过程中,如果把主播端消息事件传递到观众端,一般会以Instant Messaging(即时通讯)的方式传递过去,但因为消息分发通道和直播通... -
FFMPEG入门基础资料pdf
2018-09-13 14:47:09(FFMPEG入门基础资料pdf)FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案 -
FFmpeg_入门到精通(标准版-完整) .pdf
2019-07-06 09:40:27FFmpeg_入门到精通(标准版-完整) 教材.pdf,最新修正版, -
FFmpeg从入门到精通读书笔记(1)
2019-12-29 15:53:01笔者才开始学习音视频开发,FFmpeg从入门到精通读书笔记系列主要是基于阅读刘歧、赵文杰编著的《FFmpeg从入门到精通》以及雷霄骅博士博客总结写的入门心得体会。 官方文档资料 FFmpeg官方文档:... -
FFmpeg从入门到精通:SEI那些事
2018-02-13 00:00:00本文是“FFmpeg从入门到精通”系列的第三篇,由金山云供稿,并授权LiveVideoStack发布。此前两篇为FFmpeg代码导读——基础篇和FFmpeg代码导读——HEVC在RTMP中的扩展。FFmpeg广泛应用与音视频领域,被誉为音视频开发... -
FFMPEG完美入门资料.pdf
2018-06-03 17:25:24ffmpeg 入门资料,学习FFmpeg不二之选,详细介绍了从入门到事件的细节 -
FFmpeg从入门到精通笔记之三
2019-05-05 12:44:38FFmpeg转封装 音视频文件转MP4格式 在互联网常见的格式中,跨平台最好的应该是MP4文件,因为MP4文件既可以在PC平台的Flashplayer中播放,又可以在移动平台的Android、IOS等平台中进行播放,而且使用系统默认的... -
看似简单的两步主要的工作,其实远远不止是从后缀名为MP4的文件输出成后缀名为AVI的文件,因为在ffmpeg中,MP4与AVI是两种文件封装格式,并不是后缀名就可以决定的,例如上面的命令行同样可以写成这样: ./ffmpeg -...
-
通过ffmpeg-h encoder=libx264可以查看到: Encoder libx264 [libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10]: General capabilities: delay threads Threading capabilities: auto Supported pixel ...
-
执行完命令行之后,FFmpeg会进入端口监听模式,等待客户端连接到本地的1234端口。 2.TCP请求发布流 上文介绍了TCP端口监听模式接收流,这里介绍一下FFmpeg请求TCP并发布流,使用方式如下: ./ffmpeg -re -i input....
-
章 FFmpeg接口libavfilter的使用 libavfilter是FFmpeg中一个很重要的模块,其提供了很多音视频的滤镜,通过合理使用这些滤镜,可以达到事半功倍的效果,第6章介绍了使用FFmpeg命令行为视频添加水印、生成画中画、...
-
截至本书编写时,FFmpeg已经更新到3.1.3版本,考虑到对旧接口的兼容问题,一些API函数有多个版本,本章对一些老API和新API的使用都进行了讲解。 本章主要介绍如下几个方面的内容。 ·9.1节介绍FFmpeg旧API处理音...
-
二部分 FFmpeg的API使用篇 在介绍FFmpeg的SDK应用之前,首先需要考虑使用FFmpeg的SDK的前置准备,下载FFmpeg的SDK只需要在FFmpeg官方网站下载最新版本的FFmpeg压缩包,解压后直接参考INSTALL说明文档安装即可。...
-
章 FFmpeg接口libavformat的使用 libavformat是FFmpeg...·8.5节介绍如何从内存中获取数据,并且将数据保存到文件容器中的方法,这个应用场景还是非常多的,比如从一些硬件编码器取出编码后的流,直接保存为视频文件。
-
图7-5 OS X采集摄像头示例 从图7-5可以看到,FFmpeg从苹果电脑摄像头采集到了图像。 (2)采集OS X桌面 从设备列表中可以知道FFmpeg除了可以获得OS X的摄像头,还可以获得桌面图像,下面尝试一下获得桌面图像: ...
-
6.12.1 atempo音频倍速处理 在FFmpeg的音频处理滤镜中,atempo是用来处理倍速的滤镜,能够控制音频播放速度的快与慢,这个滤镜只有一个参数:tempo,将这个参数的值设置为浮点型,取值范围从0.5到2,0.5则是原来...
-
5.1.1 RTMP参数说明 下面就来介绍FFmpeg拉取RTMP直播流可以使用的主要参数,如表5-1所示。 表5-1 FFmpeg操作RTMP的参数 5.1.2 RTMP参数举例 相关参数已经列出,接下来将根据例子进行设置项的作用分析。 1.rtmp_...