我的管道只是试图将audiotestsrc与videotestsrc混合并输出到filesink。
videotestsrc num-buffers=150 ! video/x-raw-yuv,width=1920, height=1080 !
timeoverlay ! videorate ! queue ! xvidenc ! avimux name=mux mux.
! filesink sync=true location=new.avi
audiotestsrc num-buffers=150 !
queue ! audioconvert ! audiorate ! mux.
我在这里缺少什么?我已经尝试了sync =“”属性等的每个组合。
在音频和视频持续时间相同的情况下,哪个管道会生成一个自动模式和视频图案模式的测试片段?
由于
答案 0 :(得分:4)
audiotestsrc num-buffers=150
默认情况下,每个缓冲区包含1024个样本:samplesperbuffer 这意味着您将生成150 * 1024 = 153600个样本。 假设44.1kHz,持续时间为153600/44100 = 3.48秒。
因此,如果您需要5秒音频,则需要5 * 44100 = 220500个样本。使用samplesperbuffer == 1024,这意味着220500/1024 = 215.33缓冲区。 (即215或216缓冲区)。
如果将samplesperbuffer设置为441会更容易,那么每隔一秒音频就需要100个缓冲区:
audiotestsrc num-buffers=500 samplesperbuffer=441
答案 1 :(得分:2)
您可以使用audiotesrc的blocksize roperty来匹配帧的持续时间。这是以字节为单位的,因此您可能希望在audiotestsrc之后使用大写过滤器来选择采样率和样本格式。