2011-01-10 3 views
8

Документация для GStreamer сбивает с толку. Это еще не повод для обращения к stackoverflow.com, но все же:Конвертировать видео в WebM с помощью GStreamer

Что такое GStreamer командной строки для преобразования любого видео файла (из любого формата) в WebM (+ WebM аудио)?

This is the only documentation with examples I could find.

я застрял где-то на gst-launch-0.10 webmmux name=mux ! filesrc location=oldfile.ext ! filesink location=newfile.webm ! name=demux ! demux. ! ffmpegcolorspace ! vp8enc ! queue ! mux.video_0 ! demux. ! progressreport ! audioconvert ! audiorate ! vorbisenc ! queue ! mux.audio_0

Я получаю WARNING: erroneous pipeline: link without source element без идеи, как получить эту вещь происходит.

Это довольно неприятно.

Пожалуйста, помогите, спасибо. :)

ответ

17

У вас есть элементы конвейера, которые вышли из строя, и у вас есть синтаксические ошибки при работе с именованными элементами. Попробуйте что-то вроде этого:

gst-launch-0.10 filesrc location=oldfile.ext ! decodebin name=demux ! queue ! ffmpegcolorspace ! vp8enc ! webmmux name=mux ! filesink location=newfile.webm demux. ! queue ! progressreport ! audioconvert ! audioresample ! vorbisenc ! mux.

Это будет построить следующий трубопровод:

 
       filesrc 
        | 
       decodebin 
       | | 
     +-------+ +-------+ 
     |     | 
     |     queue 
     queue     | 
     |    progressreport 
     |     | 
ffmpegcolorspace  audioconvert 
     |     | 
     |    audioresample 
     vp8enc    | 
     |    vorbisenc 
     |     | 
     +-------+ +-------+ 
       | | 
       webmmux 
        | 
       filesink 
+0

Я получаю сообщение об ошибке. Вот подробности (вставьте его в блокнот/аналогичный и замените «->» на новые строки, чтобы сделать это доступным для чтения): Pipeline - PREROLLING ... -> ERROR: from element/GstPipeline: pipe0/GstDecodeBin: demux/GstAviDemux: avidemux0 : Ошибка внутреннего потока данных. -> Дополнительная информация об отладке: -> gstavidemux.c (5134): gst_avi_demux_loop():/GstPipeline: pipe0/GstDecodeBin: demux/GstAviDemux: avidemux0: -> потоковая остановка, причина не связана -> ОШИБКА: конвейер не хочет пререлла. -> Установка трубопровода в NULL ... -> Освобождающий трубопровод ... –

+0

Какая версия gstreamer? Похоже, что в элементе avidemux возникают проблемы с определением формата некоторых потоков. – cdhowie

+0

0.10 для OSX. Я установил с помощью homebrew (новые MacPorts). Я попытался выполнить ту же строку на своем виртуальном боксе Ubuntu, и он работает идеально. Что мне не хватает? –

1

Если у вас есть видео без звука (например, видео из службы, как VideoBlocks), удалите аудио трубопровода.

 Смежные вопросы

  • Нет связанных вопросов^_^