v4l2 카메라와 ALSA 오디오의 비디오를 멀티플렉싱하는 간단한 GStreamer 프로그램을 만들려고합니다. 그러나, 나는 muxer에 많은 문제가 있습니다.멀티플렉서를 사용하면 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"로 바꾸면 오류없이 동일한 완벽한 비디오 및 테스트 톤으로 파일을 만듭니다. "v4l2src"대신 "videotestsrc"를 사용하고 alsasrc로 다시 기록하려고하면 테스트 비디오를 볼 수 있으며 오류는 표시되지 않지만 사운드는 손상됩니다. 그것은 무작위로 주위를 뛰어 다니며 자주 놀고, 조용히 남아 있습니다. Matroska 대신 avimux를 사용하면 이러한 문제가 발생합니다. 나는 내가 alsasrc 후 큐를 추가하려고했습니다
gst-launch -e alsasrc ! audioconvert ! lamemp3enc target=1 bitrate=64 cbr=true !
filesink location=audio.mp3
와 잘 오디오를 녹음 할 수 있지만, 도움이되지 않았기 때문에 alsasrc 아무 문제가 없습니다. audior도하지 않았다. 이 파이프 라인을 수정하려면 어떻게해야합니까?