gstreamer - Gstreamer 转码流水线 1 个源 N 个接收器
问题描述
大家好,我有一个想要转换为 mp4、ogg 和 webm 的 mkv
我尝试关注管道但卡住了
gst-launch-1.0 filesrc location=output.mkv ! matroskademux name=demux demux.video_0 ! jpegparse ! jpegdec ! tee name=vo \
oggmux name=ogg ! filesink location=output.ogg \
qtmux name=mp4 ! filesink location=output.mp4 \
webmmux name=webm ! filesink location=output.webm \
vo. ! queue ! videoconvert ! vp8enc ! progressreport update-freq=1 ! webm. \
vo. ! queue ! videoconvert ! x264enc ! progressreport update-freq=1 ! mp4. \
vo. ! queue ! videoconvert ! theoraenc ! progressreport update-freq=1 ! ogg.
输出
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
Redistribute latency...
progressreport2 (00:00:01): 0 seconds
progressreport2 (00:00:02): 0 seconds
progressreport0 (00:00:02): 0 seconds
从我所看到的队列有问题,bc它只识别2个并且应该有3个此外,如果我从管道中删除一个队列,似乎工作得很好
IE
gst-launch-1.0 filesrc location=output.mkv ! matroskademux name=demux demux.video_0 ! jpegparse ! jpegdec ! tee name=vo \
oggmux name=ogg ! filesink location=output.ogg \
webmmux name=webm ! filesink location=output.webm \
vo. ! queue ! videoconvert ! vp8enc ! progressreport update-freq=1 ! webm. \
vo. ! queue ! videoconvert ! theoraenc ! progressreport update-freq=1 ! ogg.
输出
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
progressreport1 (00:00:01): 0 seconds
progressreport0 (00:00:02): 0 seconds
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
progressreport1 (00:00:02): 0 seconds
progressreport1 (00:00:03): 0 seconds
progressreport1 (00:00:04): 0 seconds
progressreport1 (00:00:05): 0 seconds
progressreport1 (00:00:06): 0 seconds
progressreport0 (00:00:08): 0 seconds
progressreport1 (00:00:09): 0 seconds
请指教
问候
解决方案
x264enc
默认情况下,延迟高于默认队列大小,导致管道停止。(它必须消耗比当前实际创建输出缓冲区更多的数据。这样管道将永远不会完成预滚动)。
两种选择:
- 增加所有队列的队列大小的缓冲区大小。
- 用于
x264enc tune=zerolatency
您的编码器。
推荐阅读
- r - BMI计算器R语言中的循环问题
- wordpress - 资源被解释为 Image 但使用 MIME 类型 image/webp 传输
- batch-file - sqlcmd 退出代码处理 for..loop (Jenkinsfile) 并处理基于域的身份验证
- reactjs - React v5 中的样式化组件
- thermal-printer - 58mm热敏票据打印机空白区问题
- php - 自动将 CSV 从 iso-8859-2 转换为 utf-8
- ruby - 是什么阻止我在 Ruby 中包含一个类?
- kubernetes - 审计日志中的动词“代理”是如何确定的?
- java - Spring bean 构造函数-arg 内部属性解析
- octave - 安装后错误:系统找不到指定的文件