2014-02-16 5 views
2

Я пытаюсь создать простую программу GStreamer для мультиплексирования видео с камеры v4l2 и звука ALSA. Однако у меня много проблем с мультиплеером. Вот команда, я использую:Использование muxer corruptts input от 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, но это не помогло. Аудитора тоже не было. Что я могу сделать, чтобы исправить этот конвейер?

ответ

1

Nevermind, я исправил его, заменив alsasrc на pulsesrc.