无法使用Gstreamer从电视卡录制视频和声音

时间:2017-08-11 05:53:40

标签: linux gstreamer v4l2 gst-launch

我有一张SAA7134电视卡。我想用Gstreamer录制带声音的视频。我使用此命令确保我能听到音频并且它可以正常工作

gst-launch-1.0 alsasrc device="hw:1,0" ! queue ! audioconvert ! alsasink

此命令证明我可以观看视频(也可以正常工作)

gst-launch-1.0 v4l2src device=/dev/video0 ! xvimagesink

此命令工作正常,允许我将声音写入文件

gst-launch-1.0 alsasrc device="hw:1,0" ! queue ! audioconvert ! wavenc ! filesink location=/home/out/testout.wav

但是此命令只会在没有任何声音的情况下写入视频

gst-launch-1.0 v4l2src device=/dev/video0 ! queue ! videoconvert ! jpegenc ! mux. alsasrc device="hw:1,0" ! queue ! audioconvert ! lamemp3enc bitrate=192 ! mux. avimux name=mux ! filesink location=/home/out/testout.avi

同样适用于

gst-launch-1.0 v4l2src device=/dev/video0 ! queue ! videoconvert ! theoraenc ! mux. alsasrc device="hw:1,0" ! queue ! audioconvert ! vorbisenc ! mux. oggmux name=mux ! filesink location=/home/out/testout.ogg

如何解决问题?谢谢。

P.S。我使用Ubuntu 16.04.3 LTS。

1 个答案:

答案 0 :(得分:0)

看起来我错过了一个关于使用gst-launch语法的重要细节。我看了一眼就发现了这个:

The -e option forces EOS on sources before shutting the pipeline down. This is useful when we write to files and want to shut down by killing gst-launch using CTRL+C or with the kill command

当我测试这个选项时,我终于得到了视频和音频。