gstreamer - 使用 gst-launch 对录音添加延迟
问题描述
我有这个使用 gst-plugin-1.0 的现有程序,它通过了这个:
-e udpsrc port=3003 buffer-size=200000 ! h264parse ! queue ! http://mux.video_0 alsasrc device=plughw:1,0 ! "audio/x-raw,channels=1,depth=16,width=16,rate=44100" ! voaacenc bitrate=128000 ! aacparse ! queue ! http://mux.audio_0 qtmux name=mux ! filesink location="$RECPATH/record-`date +%Y%m%d%-H%M%S`.mp4" sync=true
这会从 x264 中的 udp 源获取视频,并直接从麦克风获取音频。它可以工作,但由于它不会同时对视频和音频进行编码,所以当视频流有延迟(由于更高质量的设置)时,我对音频有一点延迟。
因此,作为一种快速修复,我正在考虑在录音中添加延迟以进行补偿。我会根据视频质量手动计算延迟。
约束:gst-launch-1.0 版本 1.10.4(在树莓派,debian 拉伸上),使用驱动程序时间戳似乎无法访问,我收到错误“警告:错误管道:没有属性”使用驱动程序-timestamps”在元素“alsasrc0”'中。
所以我的问题是:有没有一种简单的方法可以为音频添加延迟?
解决方案
该queue
元素具有属性,可让您在一段时间内min-threshold-time
保留数据。n
或者,我也发现了这一点,这可能对您的案例管道 Gstremer 视频流延迟有用
推荐阅读
- c++ - 具有静态 std::array 的神经网络比使用动态 C 数组的神经网络慢
- excel - 根据工作表名称获取 H 列的总和
- ios - 关于 Swift 中自定义切换按钮的问题
- c# - 如何将字符串添加到文本文件的前面
- laravel - 引发警告:count():参数必须是数组或实现 Countable 的对象
- javascript - jQuery removeClass 和 addClass
- python-3.7 - 关于如何跳过整个部分或一定数量行的问题
- javascript - 为什么会有这么多依赖?
- clang - 如何生成具有相似源代码变量名的 LLVM 位码和反汇编代码
- arduino - “'if'之前的预期不合格ID”是什么意思?