2016-01-22 46 views
0

我想記錄.webm文件我的主要.mkv的文件,以身邊,那.webm文件,對視頻對象的HTML頁面上進行讀操作(一種簡單的流媒體,只是爲了看看它的記錄)是否可以使用gstreamer錄製.webm文件?

我「使用下面的管道(與三通用於此目的)從我的攝像頭記錄?M:

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 

我該如何填寫最後一行管道(???什麼結構編碼器複用器...)

+0

你想.webm文件沒有音頻? –

+0

是的,只有視頻,音頻並不重要,只是在錄製時使用視頻對象在用戶界面上錄製 –

+0

據我所知,你想把JPEG流傳輸到你的.mkv文件,對嗎?爲什麼? –

回答

0

雖然它仍然可以轉換JPEG圖像流如果使用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 

此外,請務必使用-e選項強制EOS當您通過按Ctrl +ç終止命令。

GStreamer WebM muxer與Matroska muxer相比非常小巧:.webm幾乎等於.mkv

+0

感謝您的評論!但是視頻格式對我來說很重要,它需要是MJPEG(這是因爲我的攝像頭在考慮到我希望最終結果爲1080P這一事實時才使用MJPEG進行高清捕捉),但.webm的格式不是非常重要(只需要一個可通過html視頻對象播放的文件)我管道的第一部分工作正常,但是當我將vp8enc + webmmux添加到第二部分(對於.webm)時,它未能協商格式...您是否有任何對此有何建議? –

相關問題