在gstreamer的管道中使用mpegtsmux录制视频

时间:2015-10-04 12:32:43

标签: webcam gstreamer video-capture mpeg mpeg2-ts

我想使用此管道将MJPEG中的视频流(+音频)从我的网络摄像头捕获到.mts容器中:

gst-launch-1.0  v4l2src do-timestamp=true  device=/dev/video0 \ !    
'image/jpeg,framerate=30/1,width=1280,height=720' ! videorate \
! queue ! mux2.  pulsesrc do-timestamp=true \ 
device="alsa_input.pci-0000_00_1b.0.analog-stereo" !  \
'audio/x-raw,rate=88200,channels=1,depth=24' !  audioconvert ! \
 avenc_aac compliance=experimental ! queue ! \
  mux2. mpegtsmux name="mux2" ! filesink location=/home/sina/Webcam.mts

似乎我的管道无法识别mpegtsmux(?) 当我使用avimux甚至matroskamux它可以工作,但就我所知的MPEG-TS而言,我需要使用正确的复用器,即" mpegtsmux"

这是警告:

警告:错误的管道:无法将queue0链接到mux2

你能告诉我管道的哪一部分是错的吗?或者我应该改变什么才能在结尾处获得带时间戳的视频流(当我通过kdenlive或VLC播放视频时,必须显示视频的持续时间)?

最佳, 新浪

1 个答案:

答案 0 :(得分:0)

我认为你在mux之前缺少一些编码器。 试试这个没有音频(添加x264enc):

gst-launch-1.0 v4l2src device=/dev/video0 ! videorate ! queue ! x264enc ! mpegtsmux name="mux2" mux2. ! filesink location=bla.mts

你得到的警告清楚地说明了..它无法链接多路复用器,因为多路复用器不支持功能image / jpeg ..只需用命令检查接收器垫的功能部分:

gst-inspect-1.0 mpegtsmux

但它支持例如video / x-h264 - 因此需要x264enc