简介
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"