【问题标题】:Using a muxer corrupts input from ALSA使用复用器会破坏来自 ALSA 的输入
【发布时间】:2014-03-16 02:38:33
【问题描述】:

我正在尝试制作一个简单的 GStreamer 程序,将来自 v4l2 摄像头的视频和 ALSA 音频混合在一起。但是,我在使用复用器时遇到了很多问题。这是我正在使用的命令:

$ gst-launch -e matroskamux name="muxer" ! filesink location=test.mkv v4l2src ! 
video/x-raw-yuv, framerate=10/1, format=\(fourcc\)YUY2, width=640, height=480 !
videorate ! ffmpegcolorspace ! x264enc ! muxer. alsasrc ! audioconvert ! 
lamemp3enc target=1 bitrate=64 cbr=true ! muxer.

创建的文件有完美的视频,但控制台输出如下消息:

WARNING: from element /GstPipeline:pipeline0/GstAlsaSrc:alsasrc0: Can't record audio 
fast enough
Additional debug info:
gstbaseaudiosrc.c(840): gst_base_audio_src_create (): /GstPipeline:pipeline0/GstAlsaSrc:alsasrc0:
Dropped 10584 samples. This is most likely because downstream can't keep up and is consuming samples too slowly.

并且视频是无声的。将“alsasrc”替换为“audiotestsrc”会生成具有相同完美视频和无错误测试音调的文件。如果我使用“videotestsrc”而不是“v4l2src”并尝试再次使用 alsasrc 录制,我可以看到测试视频并且没有错误提示,但声音已损坏;它分段演奏,随意跳跃,经常保持沉默。如果我使用 avimux 而不是 Matroska,也会出现这些问题。 alsasrc 没有问题,因为我可以很好地录制音频

 gst-launch -e alsasrc ! audioconvert ! lamemp3enc target=1 bitrate=64 cbr=true !
 filesink location=audio.mp3

我尝试在 alsasrc 之后添加一个队列,但没有帮助。一个audiorate也没有。我可以做些什么来修复这个管道?

【问题讨论】:

    标签: video gstreamer alsa matroska


    【解决方案1】:

    没关系,我通过将 alsasrc 替换为 pulsesrc 来修复它。

    【讨论】:

      猜你喜欢
      • 2017-08-23
      • 2020-03-29
      • 2021-06-10
      • 2018-01-02
      • 2020-05-17
      • 2019-12-07
      • 2017-09-02
      • 1970-01-01
      • 2010-10-27
      相关资源
      最近更新 更多