gstreamer使用介绍

简介

GStreamer 是一个用于构建媒体处理组件图的库。它支持的应用范围从简单的 播放、音频/视频流到复杂的音频(混合)和视频(非线性编辑)处理。

下载安装

环境:mac os Big sur

下载

https://gstreamer.freedesktop.org/data/pkg/osx/1.18.4/gstreamer-1.0-1.18.4-x86_64.pkg

安装后的位置

/Library/Frameworks/GStreamer.framework/:框架的根路径
/Library/Frameworks/GStreamer.framework/Versions:包含框架所有版本的路径
/Library/Frameworks/GStreamer.framework/Versions/Current:链接到框架的当前版本
/Library/Frameworks/GStreamer.framework/Headers:带有开发头文件的路径
/Library/Frameworks/GStreamer.framework/Commands:链接到框架提供的命令,例如 gst-inspect-1.0 或 gst-launch-1.0

设置环境变量

在~/.bash_profile添加PATH,以便于可以直接使用gst-launch-1.0等命令

export GSTREAMER="/Library/Frameworks/GStreamer.framework"
export PATH="$GSTREAMER/Commands:$PATH:"
source ~/.bash_profile

查看插件

# videotestsrc为插件名
gst-inspect-1.0 videotestsrc

查看视频编码格式

gst-discoverer-1.0 https://media.w3.org/2010/05/sintel/trailer_hd.mp4

视频播放

gst-launch-1.0 playbin uri=https://media.w3.org/2010/05/sintel/trailer_hd.mp4

mp4 转 mkv

gst-launch-1.0 filesrc location=trailer_hd.mp4 ! qtdemux name=demux matroskamux name=mux ! filesink location=trailer_hd.mkv  demux.audio_0 ! queue ! aacparse ! queue ! mux.audio_0  demux.video_0 ! queue ! h264parse ! queue ! mux.video_0

mkv转mp4

gst-launch-1.0 filesrc location= xskdjs.mkv ! matroskademux ! h264parse ! qtmux ! filesink location=xskdjs_out.mp4

mp4 转 m3u8(HLS stream)

gst-launch-1.0 videotestsrc is-live=true ! video/x-raw, format=I420,width=1920, height=1080 !  x264enc ! qtmux ! filesink location=test_src.mp4 -e
gst-launch-1.0 filesrc location=scg.m4v ! qtdemux name=demux  demux.audio_0 ! queue ! decodebin ! audioconvert ! audioresample ! autoaudiosink   demux.video_0 ! queue ! decodebin ! videoconvert ! videoscale ! autovideosink
gst-launch-1.0 filesrc location=trailer_hd.mp4 ! qtdemux  name=demux  ! queue ! h264parse  ! mpegtsmux name=mux ! hlssink  playlist-length=0 target-duration=5 max-files=100 playlist-location="playlist.m3u8" location="fragment%03d.ts"   demux.  ! queue ! aacparse ! mux.

m3u8(HLS stream) 转 mp4

gst-launch-1.0 souphttpsrc location=http://yourdomain/playlist.m3u8 ! hlsdemux ! decodebin ! videoconvert ! videoscale ! autovideosink
gst-launch-1.0 filesrc location=playlist.m3u8 ! hlsdemux ! filesink location=from_m3u8.mp4 -e

截图

gst-launch-1.0 videotestsrc ! video/x-raw, format=I420, width=400, height=400, framerate=1/5 ! identity sync=true ! timeoverlay ! jpegenc ! multifilesink location=file-%02d.jpg
gst-launch-1.0 filesrc location=trailer_hd.mp4 ! qtdemux ! h264parse ! avdec_h264!   videoconvert ! videoscale ! videorate  ! video/x-raw, framerate=1/20  ! identity sync=true  ! timeoverlay ! jpegenc ! multifilesink location="test%d.jpg"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: GStreamer是一个功能强大的多媒体框架,可以用于创建多媒体应用程序。它是一个开源项目,使用C语言编写,并提供了丰富的API和插件集合,使开发人员可以轻松地处理音频和视频数据。GStreamer提供了各种各样的插件,可以进行多媒体的编码、解码、播放和流媒体等操作。 GStreamer的特点之一是它的灵活性。它可以在多种操作系统(如Linux、Windows和MacOS)上运行,并且可以与许多不同的媒体框架和库进行集成,包括OpenGL、ALSA、PulseAudio等。这意味着开发人员可以选择适合自己项目需求的特定插件和库,以构建出定制化的多媒体应用。 除了桌面应用外,GStreamer还可以用于移动应用程序的开发。它可以运行于移动设备上,如智能手机和平板电脑,以及嵌入式设备上,如物联网设备和嵌入式系统。这使得开发人员能够在不同的平台上创建具有多媒体功能的应用程序,从而满足用户的需求。 GStreamer还提供了强大的插件系统,使开发人员可以根据自己的需求创建自定义的插件。这些插件可以用来处理特定类型的音频或视频数据,或者用于实现特定的功能,如流媒体传输、音频编码等。这使得用户可以根据自己的项目需求进行灵活的扩展和定制。 总结起来,GStreamer是一个功能强大、灵活性高的多媒体框架,提供了丰富的API和插件集合,用于处理音频和视频数据。开发人员可以利用它构建出定制化的多媒体应用,满足不同平台上的用户需求。 ### 回答2: GStreamer是一个开源的多媒体框架,它提供了一组库和插件,用于构建音频和视频处理应用程序。GStreamer的设计目标是提供一个简单、灵活和可扩展的架构,使开发者能够轻松地开发各种多媒体应用。 GStreamer使用管道(pipeline)的概念来处理多媒体数据流。一个管道由多个不同的元素(element)组成,每个元素负责执行一个特定的任务,例如读取、解码、转码、处理或输出媒体数据。这些元素可以通过附加不同的插件来扩展其功能。GStreamer提供了大量的插件,可以支持各种音频和视频编解码格式,以及网络流媒体传输等功能。 GStreamer采用C语言编写,但也提供了其他语言的绑定,如Python、Java等,以方便开发者使用不同的编程语言进行开发。它还提供了用于构建图形用户界面的GTK+库,以及命令行工具和调试工具,方便开发者进行调试和测试。 GStreamer广泛应用于多个领域,包括音频和视频播放器、流媒体服务、视频编辑和转码工具等。它的灵活性和可扩展性使得开发者可以根据自己的需求自由定制和扩展应用程序的功能。此外,GStreamer还具有良好的跨平台性,可以在多个操作系统上运行,如Linux、Windows、macOS等。 总之,GStreamer是一个功能强大、灵活可扩展的多媒体框架,可以帮助开发者构建各种音频和视频处理应用程序。它的简单易用性和丰富的插件库使得开发者能够快速开发高质量的多媒体应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值