在 GStreamer 中,复用器(Muxer) 用于将编码后的音视频流 封装到容器格式(如 MP4、MKV、AVI 等)。
一、常用复用器(Muxer)
1. 常用复用器(Muxer)列表
(1) MP4 容器
元素 | 描述 | 关键参数 | 适用场景 |
---|---|---|---|
mp4mux |
标准 MP4 封装(支持 H.264/AAC) | faststart=true (流式优化) |
视频录制、点播文件 |
qtmux |
QuickTime 兼容封装(.mov) | fragment-duration=1000 |
iOS 兼容、流媒体分片 |
示例:
bash
# 生成 MP4 文件(H.264 + AAC)
gst-launch-1.0 \
videotestsrc ! x264enc ! mp4mux name=mux ! filesink location=output.mp4 \
audiotestsrc ! voaacenc ! mux.
(2) Matroska / WebM 容器
元素 | 描述 | 关键参数 | 适用场景 |
---|---|---|---|
matroskamux |
MKV 封装(支持多轨道) | writing-app=GStreamer |
高清视频、多字幕/音轨 |
webmmux |
WebM 封装(VP9/Opus) | - | 网页视频(HTML5) |
示例:
bash
# 生成 MKV 文件(VP9 + Opus)
gst-launch-1.0 \
videotestsrc ! vp9enc ! matroskamux name=mux ! filesink location=output.mkv \
audiotestsrc ! opusenc ! mux.
(3) AVI 容器
元素 | 描述 | 关键参数 | 适用场景 |
---|---|---|---|
avimux |
AVI 封装(旧格式) | index=TRUE |
兼容旧设备/软件 |
示例:
bash
# 生成 AVI 文件(MPEG-4 + MP3)
gst-launch-1.0 \
videotestsrc ! mpeg4videoparse ! avimux name=mux ! filesink location=output.avi \
audiotestsrc ! lamemp3enc ! mux.
(4) MPEG-TS / MPEG-PS 容器
元素 | 描述 | 关键参数 | 适用场景 |
---|---|---|---|
mpegtsmux |
MPEG-TS 封装(直播流) | alignment=7 |
数字电视、DVB 直播 |
mpegpsmux |
MPEG-PS 封装(DVD/VOB) | - | DVD 视频制作 |