我正在尝试学习录制 X11 windows 的内容来为 Youtube 做游戏截屏。这应该是一个相当微不足道的任务,但它已经吃了一个完整的晚上。现在我已经了解了一些关于混合和排队(使用gst-launch
)的知识,但问题仍然存在:当我将音频和视频混合成 avi 时,视频播放速度比生成文件中的音频快几倍。这意味着视频很快结束并静止,而音频继续在背景中喋喋不休。
这是导致问题的我的过滤器链:
gst-launch-1.0 ximagesrc xid=$XID ! video/x-raw,framerate=30/1 ! videoconvert !
x264enc ! queue ! avimux name=mux ! queue ! filesink location=out.avi
pulsesrc device=$DEV ! queue ! audioconvert !
lamemp3enc bitrate=192 ! queue ! mux.
但是,当我只有视频时,问题就消失了,并且以完全正常的速度播放:
ximagesrc xid=0x0820000b ! video/x-raw,framerate=30/1 ! videoconvert !
x264enc ! avimux ! filesink location=out.avi
如果您纠正我对! queue !
. 哪里需要?在当前设置中,我几乎从未收到样本被丢弃的警告。
更新:我更喜欢使用 mp4 muxer,但它会产生缺少 moov atom 的无法播放的文件。Youtube 建议把它放在文件的开头,我可以用 mp4 muxer 强制它吗?