2016-01-22 3 views
0

Я хотел бы записать .webm файл рядом с моим основных .mkv файлом, чтобы служить, что .webm файла, к видео объекту на HTML-странице, чтобы читать (вид простых потокового просто посмотреть, что это запись)Возможно ли записать файл .webm с помощью gstreamer?

I использую трубопровод ниже (с тройником для этой цели) для записи с веб-камеры:

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

Вы хотите, чтобы файл .webm был без звука? –

+0

Да, только видео, аудио не важно, просто для воспроизведения с использованием видеообъекта на html UI во время записи –

+0

Как я понял, вы хотите поместить поток JPEG в свой .mkv-файл, правильно? Зачем? –

ответ

0

Хотя все еще можно преобразовать поток изображения JPEG es до .WebM с потоком VP8 внутри, он будет потреблять операцию, а результаты не будут хорошенькими: кодирование → декодирование → последовательность кодирования будет плохо испортить результат (и использовать больше CPU).

Если вам не нужно JPEGs и не заботиться о формате видео внутри .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 + C.

GStreamer WebM-мультиплексор очень крошечный слой над мульчированием Matroska: .webm почти равен .mkv.

+0

Спасибо за ваш комментарий! но формат видео очень важен для меня, он должен быть MJPEG (потому что моя веб-камера предлагает HD-захват только с MJPEG с учетом этого факта, что я хочу, чтобы конечный результат был 1080P), с другой стороны, формат .webm не является так важно (просто нужен воспроизводимый файл с помощью видеообъекта html), первая часть моего конвейера работает нормально, но когда я добавил vp8enc + webmmux во вторую часть (для .webm), он не смог согласовать формат ... у вас есть предложение по этому поводу? –