Gstreamer:如何让音频和视频以相同的速率播放
我的管道只是尝试将audiotestsrc与videotestsrc进行多路复用,并输出到FileLinkGstreamer:如何让音频和视频以相同的速率播放,gstreamer,Gstreamer,我的管道只是尝试将audiotestsrc与videotestsrc进行多路复用,并输出到FileLink 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 audiote
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.
- 产生了新的.avi李>
- 视频正好是预期的5秒长
- 音频约为3.5秒,剩余的1.5秒为
沉默
谢谢您可以利用audiotesrc的块大小属性来匹配帧的持续时间。这是以字节为单位的,因此您可能希望在audiotestsrc之后使用caps过滤器来选择采样率和采样格式
audiotestsrc num-buffers=150
默认情况下,每个缓冲区包含1024个样本:
这意味着您正在生成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
明亮的谢谢完美答案。