我想使用此管道将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播放视频时,必须显示视频的持续时间)?
最佳, 新浪
答案 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