
您也可以关注我的简短图书帐户: 张芳涛,我稍后会发布更多有关音频,视频和图像处理的文章.
FFmpeg项目包含4个命令行工具和9个软件库,许多公司和软件项目都可以使用. 第一章介绍了ffmpeg工具的语法和用法.
FFplay是一个简单的媒体播放器,可以播放ffmpeg工具可以解码的所有媒体格式. 有关可用格式和其他列表,请参阅第2章.
FFmpeg组件: ffplay
描述一个简单的媒体播放器,使用FFmpeg和SDL库,它主要用于测试和开发
语法
ffplay [选项] [输入文件]
参数说明
选项
ffmpeg工具几乎所有可用的选项都可以与ffplay一起使用
input_file
输入可以是常规文件,管道,网络流,爬网设备等.
在显示相同输出之前,FFplay在编码为文件之前非常有用,有关详细信息,请参阅第1章中的“显示输出预览”部分. 例如,要使用ffplay在浅橙色背景上显示各种testsrc视频源,我们可以使用以下命令:
ffplay -f lavfi -i testsrc -vf pad=400:300:(ow-iw)/2:(oh-ih)/2:orange

我的测试命令:
ffplay -f lavfi -i testsrc -vf pad=400:300:\(ow-iw\)/2:\(oh-ih\)/2:orange

如果我们要观看文件文档中的视频. 要从文件注释中收听mp3格式的音频,我们可以使用以下命令:
ffplay -i lavfi "movie=document.avi[out0];amovie=comments.mp3[out1]
如果使用-enable-libiec61883选项编译FFmpeg,则可以通过以下命令显示连接到计算机的FireWire DV / HDV设备的输入:
ffplay -f iec61883 -i auto
在播放期间,ffplay可以通过按键和鼠标进行控制,详细信息如下表所示:
键说明
q,ESC
退出
f
切换全屏
p,空格键
切换暂停
a

音频频道
v
视频频道
t
可用字幕
w
在可用的显示模式选项之间循环: 视频,rdft,音频
左箭头/右箭头
向后/向前拖动10秒钟
向下翻页/向上翻页
向后/向前拖动10分钟
点击鼠标
在文件中找到与宽度部分相对应的百分比
与MPlayer一样,ffplay也将退出ESC键,并使用空格键在暂停之间进行切换. f键切换到全屏模式,但有时至少在较旧的版本中,它将中止Windows计算机. 如果媒体文件包含多个视频流,则可以使用v键循环播放,而音频流可以使用t键循环按键和字幕流. 按向右箭头键将视频快进10秒,按PageUp键将视频快进10分钟;向左箭头键将视频后退10秒,而PageDown键将视频后退10分钟. 鼠标单击事件提供了更灵活的时间搜索功能. 我们可以通过单击相应的播放器窗口部分来移动到任何部分,例如,单击中心将移动到媒体文件的中间.
在播放视频文件时,ffplay显示视频,这是其-showmode选项的默认值,其他值为rdft(逆离散傅立叶逆变换)和wave(来自滤波器显示波的音频波). 在播放过程中,按w键可在这些模式之间切换:

我的测试结果:


ffprobe是一个实用程序,可以从多媒体流中收集信息并以人机和机器可读的方式进行打印. 它可用于检查多媒体流使用的容器的格式以及其中的每个媒体流的格式和类型. 选项用于列出ffprobe支持的某些格式或设置要显示的信息,以及设置ffprobe的显示方式. 它的输出易于通过文本过滤器进行分析,由-of(或-print_format)选项指定的选定作者定义的表单的一个或多个部分组成. 调试和测试一章中介绍了ffprobe的使用示例.
FFmpeg组件: ffprobe
描述用于检测多媒体流中各种数据以进行分析的命令行工具. 它可以单独使用或与文本过滤器一起使用以进行复杂的处理
语法
ffprobe [选项] [输入文件]
参数说明
选项
ffmpeg工具几乎所有可用的选项都可以使用ffprobe
input_file
输入可以是常规文件,管道,网络流,爬网设备等.
其他ffprobe选项
-位精确

强制位精确输出,用于生成不依赖于特定构建的输出
-count_frames
每个流中的帧数,并在相应的流部分中报告
-count_packets
每个流中数据包的数量,并报告以相应的流方式设置打印格式,w_name是writer名称,w_options是writer选项
-w_name [= w_options]
设置打印格式,w_name是编写者的名称,w_options是编写者的选项
-select_streams str_spec
仅选择由str_spec指定的流,该流可以是下一个字母: a =音频,d =数据,s =字幕,t =附件,v =视频
-show_data
显示有效载荷数据播放器 命令行,例如十六进制和ASCII转储,以及-show_packets(其转储数据包的数据),以及-show_streams(其转储编Extradata)
-show_error
显示有关在探查输入时发现的错误的信息
-show_format
显示有关输入媒体流的容器格式的信息
-show_format_entry名称
类似于-show_format,但仅打印容器格式信息指定的项目,而不是全部
-show_frames
显示有关输入媒体流中包含的每个帧的信息
-show_library_version
显示与库版本有关的信息
-show_packets
输入媒体流中包含的每个数据包的信息如何
-show_private_data
-私人
显示数据取决于特定显示元素的格式. 该选项默认情况下处于启用状态,但可以将其设置为0,例如,在创建符合xsd的XML输出时
-show_streams
显示输入媒体流中包含的每个媒体流的信息
-show_versions
显示与程序和库版本有关的信息,等效于设置-show_program_version和-show_library_version选项
ffserver是运行在Linux上的多媒体流服务器,尚不能使用官方Windows二进制文件

FFmpeg组件: ffserver
描述用于为音频和视频提供流媒体服务器的实用程序. 它支持多个实时提要,文件流和实时提要的时间转换. 如果在ffserver.conf配置文件中指定了足够的存储源存储,则可以在每个实时源中找到过去的位置. ffserver默认情况下在Linux上以守护程序模式运行,这意味着除非在调试模式下启动或在配置文件中指定了NoDaemon选项,否则ffserver会将自己置于后台并与控制台分离.
语法
ffserver [选项]
参数说明
选项
ffmpeg工具提供的几乎所有选项都可以与ffserver一起使用
其他ffserver选项
-d
启用调试模式,这将增加日志的冗余,将日志消息定向到stdout,并使ffserver在前台运行而不是充当守护程序
-f配置文件
使用配置文件代替/etc/ffserver.conf
-n
启用无启动模式,这将禁用各个部分的所有启动指令,因为ffserver不会启动任何ffmpeg实例,因此您必须手动启动它们
libavcodec是一个用于解码和编码多媒体的编库,它非常流行,MPlayer和VLC等多平台媒体播放器使用它来播放许多音频和视频格式. 它可以解码,并且在某些情况下还可以编码某些专有格式,包括没有官方规范的格式. 标准libavcodec框架中的这些编提供了优于使用原始编的优势,主要是为了提高可移植性,有时还提供了更好的性能,因为libavcodec包括用于DCT和诸如空间转换之类的通用构件颜色精确优化的标准库.
在libavcodec中实现的编列表位于“显示帮助和功能”一章中.
libavdevice是一个特殊的设备复用/解复用库,它是对libavformat库的补充. 它提供了各种特定于平台的多路复用器和多路解复用器,例如用于抓取设备,音频收集和回放. 因此,libavdevice中的(多路复用)多路复用类型为AVFMT_NOFILE(它们使用自己的I / O函数). 传递给avformat_open_input()的文件名通常不引用实际文件,但是具有特定于设备的特殊含义,例如,对于x11grab设备,它是显示名称.
第2章的“可用媒体格式”部分列出了可用的设备.
libavfilter是一个筛选器库,为FFmpeg和客户端库或应用程序提供了媒体筛选层. 它简化了FFmpeg工具的设计并增强了它们的灵活性.

libavfilter包含用于格式协商的高级机制,并最大程度地减少了像素/格式转换. 筛选器处理缓冲区,其中可以包含视频帧或音频源. 每种缓冲区帧类型,时间戳,文件位置等的属性都可以在处理期间进行访问和处理. 可用过滤器的列表在第2章中.
libavformat是一个库,其中包含音频/视频容器格式的解复用和复用. 在实现的多路复用器中,有crc,framecrc,ico播放器 命令行,md5,MOV / MP4 / ISMV,mpegts,matroska等.
在第2章中列出可用的媒体格式.
libavutil是一个辅助库,其中包含FFmpeg不同部分的例程,例如:
libpostproc是一个包含视频后处理例程的库.
libswresample库可以处理不同的采样格式,采样率,不同数量的通道以及不同的通道布局. 它支持直接转换样品格式和一次性包装/平面.
libswscale是一个包含视频图像缩放例程并提供快速模块化缩放接口的库.
大量使用各种FFmpeg工具和库的项目,上面列出了许多
使用FFmpeg库的最常用的应用程序可能是Google Chrome浏览器,它是最流行的浏览器之一. 在2009年,FFmpeg库被合并到Chrome中以支持HTML5音频和视频元素. 其他使用FFmpeg的浏览器包括Chromium和Orygin Web浏览器.
最大的视频共享网站YouTube和最大的社交网络Facebook是使用ffmpeg的世界上最大的项目. 在视频处理方面,每周有数百万个视频.
下表描述了使用FFmpeg库的多媒体框架:

名称网站描述
ffdshow
ffdshow-tryout.sourceforge.net
媒体编码器和,实现为DirectShow和VFW过滤器,仅Windows
GStreamer
gstreamer.freedesktop.org
用于构建媒体处理组件图的库. 它支持的应用程序范围从简单的Ogg / Vorbis回放,音频/视频流到复杂的音频(混合)和视频(非线性编辑)处理
MLT
MLT是为电视广播设计和开发的开源多媒体框架. 它为广播公司,视频编辑器,媒体播放器,代码转换器,网络流媒体和其他类型的应用程序提供工具箱.
OpenMAX
OpenMAX是免版权的跨平台API,可提供全面的流媒体编码和应用程序可移植性. 它可以使加速的多媒体组件能够在多个操作系统和硅平台上开发. 集成和编程
下表描述了使用FFmpeg库的媒体框架:
名称网站描述
大胆
audacious-media-player.org
Audacious是一个开源音频播放器. 拖放文件夹和单个歌曲文件,在整个音乐库中搜索艺术家和专辑,或者创建和编辑自己的自定义播放列表. 从Internet收听CD或流音乐. 使用图形均衡器或实验来调整声音. 享受现代的GTK主题界面,或使用Winamp经典外观进行更改. 使用粗体插件获取音乐的歌词,在早上设置闹铃等.
纳什
Gnash是GNU SWF电影播放器,可以在台式机或嵌入式设备上独立运行,也可以作为多个浏览器的插件
KMPlayer
KDE的视频播放器插件和基本的MPlayer / Xine / ffmpeg / ffserver / VDR前端. Konqueror的KMPlayer KPart插件模仿了QuickTime,MS Media Player和RealPlayer插件浏览器插件
MPlayer
在许多系统上运行的电影播放器. 它播放MPEG / VOB,AVI,Ogg / OGM,VIVO,ASF / WMA / WMV,QT / MOV / MP4,RealMedia,Matroska,NUT,NuppelVideo,FLI,YUV4MPEG,FILM,RoQ,PVA文件. XAnim和Win32 DLL编支持. 您可以观看VideoCD,SVCD,DVD,3ivx,DivX 3/4/5,WMV甚至H.264电影
Rockbox
Rockbox是数字音乐播放器的免费替代固件. 它可以在许多播放器上运行
VLC
VLC是一个免费的开源跨平台多媒体播放器和框架,可播放大多数多媒体文件以及DVD,音频CD,VCD和各种流媒体协议
V-layer
vchannel.sourceforge.net/ player.html
基于ffmpeg库的跨平台媒体播放器. V Player现在支持Windows,Linux和OS X平台. 用户界面使用c ++编写,并且Qt 4在所有平台上均可用
Xine
免费的多媒体播放器. 它播放cd,dvd和vcd. 它还可以解码本地磁盘驱动器上的AVI,MOV,WMV和MP3等多媒体文件,并在Internet上显示多媒体流
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/bofangqi/article-254535-1.html
我们也希望为他筹多点钱去治疗
北洋水师已经不先进了