我想在我的主.webm
文件旁边记录一个.mkv
文件,以便将.webm
文件投放到html页面上的视频对象中进行阅读(亲切的简单的流媒体只是为了看它录制的内容
我使用下面的管道(用于此目的的tee)从我的网络摄像头录制:
gst-launch-1.0 v4l2src device=/dev/video1 ! tee name=t t. \
! image/jpeg,width=1920,height=1080 ! capssetter \
caps='image/jpeg,width=1920,height=1080,framerate=30/1' ! queue \
! matroskamux name=mux pulsesrc device="alsa_input.usb-046d_Logitech_Webcam_C930e_AAF8A63E-02-C930e.analog-stereo" \
! 'audio/x-raw,channels=1,rate=44100' ! audioconvert ! vorbisenc ! queue \
! mux. mux. ! filesink location=/home/sina/Desktop/Recordings/Webcam.mkv \
t. ! queue ! (...pipeline?...) ! filesink location=/home/sina/Desktop/Recordings/TestWebcam.webm
我应该如何为最后一行填充管道?(什么结构?编码器?muxer?...)
答案 0 :(得分:0)
虽然仍然可以将JPEG图片流转换为.WebM
内部的VP8流,但它会消耗操作并且结果不会很漂亮:编码→解码→编码序列会破坏输出不良(并使用更多CPU)。
如果您不需要JPEG并且不关心.mkv
文件中的视频格式,最简单的解决方案是使用单个VP8编码器(因为.mkv
和.webm
个文件可以包含VP8)和拆分编码流:
gst-launch-1.0 -e \
v4l2src ! vp8enc ! tee name=t ! \
queue ! matroskamux name=m ! filesink location=1.mkv \
pulsesrc ! vorbisenc ! m. \
t. ! \
queue ! webmmux ! filesink location=1.webm
此外,当您通过 Ctrl + C 终止命令时,请确保使用-e
选项强制执行EOS。
GStreamer WebM muxer是Matroska muxer上非常小的一层:.webm
几乎等于.mkv
。