ffmpeg与gstreamer介绍

ffmpeg介绍

ffmpeg是什么?

FFmpeg是一个开源的多媒体框架,用于处理音频、视频和多媒体流。它由一组库和工具组成,提供了丰富的功能和命令行工具,用于处理、转换、编码、解码、流媒体和编辑多媒体内容。

ffmpeg组成

以下是FFmpeg的基本组成部分:

  1. libavutil:这是FFmpeg的核心库,提供了一些基本的功能和工具,包括数据结构、数据处理、多媒体对象管理和其他通用功能。
  2. libavcodec:这是FFmpeg的编解码库,封装了Codec层,但有一些codec是具备自己的Licence的。它包含了各种音频和视频编解码器。它能够将多种格式的音频和视频数据进行解码(解码器),或者将音频和视频数据编码为不同的格式(编码器)。
  3. libavformat:这个库是文件格式和协议库,封装了Protocol层和Demuxer、Muxer层用于处理多媒体容器格式,如AVI、MP4、FLV、MKV等。它能够读取和写入不同格式的音频和视频文件,以及处理流媒体。
  4. libavfilter:这个库提供了音频和视频滤镜的功能。它可以用于实现特效、图像处理、色彩调整、降噪、裁剪等操作。
  5. libswscale:这个库用于视频图像的缩放和格式转换。它能够将输入的视频图像缩放到指定的大小,或者将视频图像从一种像素格式转换为另一种像素格式。
  6. libswresample:这个库用于音频重采样和格式转换。它能够将输入的音频数据重采样到指定的采样率、声道数和格式,或者将音频数据从一种格式转换为另一种格式。
  7. libavdevice:输入输出设备库,这个库提供了对各种音频和视频设备的输入和输出支持,如摄像头、麦克风、音频接口等。它可以用于捕捉和录制音频和视频流。
  8. libpostproc:这个库提供了视频后处理功能,例如去隔行、去噪、锐化等。它可以用于改善视频质量或应用特定的效果。

ffmpeg 常用的tool

-ffmpeg is a command line toolbox to manipulate, convert and stream multimedia content.
-ffplay is a minimalistic multimedia player.
-ffprobe is a simple analysis tool to inspect multimedia content.

gstreamer介绍

gstreamer是什么?

GStramer是一个创建流媒体应用程序的框架。GStreamer的程序开发框架使得编写任意类型的流媒体应用程序成为了可能。GStreamer并不受限于音频和视频处理它能够处理任意类型的数据流。管道设计的方法对于实际应用的滤波器几乎没有负荷,它甚至可以用来设计出对延时有很高要求的高端音视频应用程序。

gstreamer 的组成

GStreamer框架是基于插件的,有些插件中提供了各种各样的多媒体数字信号编译码器,也有些提供了其它的功能。所有的插件都能够被链接到任意的已经定义了的数据流管道中。

  • Media Applications
    最上面一层为应用,比如GStreamer自带的一些工具(gst-launch,gst-inspect等),以及基于GStreamer封装的库(gst-player,gst-rtsp-server,gst-editing-services等)根据不同场景实现的应用。
  • Core Framework
    中间一层为Core Framework,主要提供:
  1. 上层应用所需接口
  2. Plugin的框架
  3. Pipline的框架
  4. 数据在各个Element间的传输及处理机制
  5. 多个媒体流(Streaming)间的同步(比如音视频同步)
  6. 其他各种所需的工具库
  • Plugins
    最下层为各种插件,实现具体的数据处理及音视频输出,应用不需要关注插件的细节,会由Core Framework层负责插件的加载及管理。

  • gstreamer package
    GStreamer框架根据各个模块的成熟度以及所使用的开源协议,将core及plugins置于不同的源码包中:

  1. GStreamer: 包含core framework及core elements。
  2. gst-plugins-base: GStreamer应用所需的必要插件。
  3. gst-plugins-good: 高质量的采用LGPL授权的插件。
  4. gst-plugins-ugly: 高质量,但使用了GPL等其他授权方式的库的插件,比如使用GPL的x264,x265。
  5. gst-plugins-bad: 质量有待提高的插件,成熟后可以移到good插件列表中。
  6. gst-libav: 对libav封装,使其能在GStreamer框架中使用。
  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值