1

Я новичок в GStreamer и пытаюсь создать несколько простых конвейеров, используя gst-launch-1.0. Мне трудно понять, какие элементы должны идти вместе. Например, я хочу передать потоковое видео в веб-тег HTML5 в браузере. Чтобы открыть и прочитать файл, я думаю, что мне нужно использовать playbin:

gst-launch-1.0 playbin uri=file:///home/ubuntu/g-streamer-lively/skyrim.webm ...

Затем, чтобы сделать файл доступным, я использую hlssink:

! hlssink max-files=5  playlist-root=http://10.12.9.3/ location=/var/www/html/hlssink.webm

Затем в моем браузере я использую тег видео:

<video src="http://10.12.9.3/hlssink.webm" controls>

Так что этот конвейер не запустится, и я получаю следующую ошибку:

WARNING: erroneous pipeline: could not link playbin0 to hlssink0

Так что это говорит мне, что я не могу связать эти два элемента. Хорошо, но где я могу найти другие элементы, которые мне нужно включить в конвейер, чтобы эта работа работала?

Заранее спасибо.

1 ответ1

0

Я полагаю, вам следует остановиться и прочитать документацию gstreamer, чтобы понять, как это работает. GStreamer - это фреймворк для построения графа для обработки данных. Вы можете найти руководство здесь: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/index.html

Playbin - это особый элемент (мусорное ведро), и он соберет для вас внутренний конвейер. Playbin не будет открывать какие-либо связующие площадки, так как он предназначен для создания полноценного конвейера воспроизведения, поэтому вы не можете связать его с hlssink.

Вы можете использовать другие элементы для создания конвейера для перекодировки вашего webm-ввода в hlssink, например, вы можете использовать uridecodebin, который является другим bin-модулем, который автоматически создаст конвейер декодирования для любого носителя, который вы используете (при условии, что у вас есть соответствующие плагины для него). ). Что-то вроде:

gst-launch-1.0 uridecodebin uri=<youruri> name=decbin ! queue ! videoconvert ! x264enc ! tsmux name=muxer ! hlssink decbin. ! queue ! audioconvert ! faac ! muxer.

Я не проверял это, но что-то подобное должно работать для преобразования вашего ввода в mpegts с использованием H264 и AAC, например, и передачи данных для hlssink.

Чтобы проверить, какие элементы есть в вашей системе, используйте инструмент gst-inspect-1.0. В нем будут перечислены все элементы, если вы не дадите ему аргумент или не предоставите подробную информацию о конкретном элементе, если вы дадите ему один, например:

gst-inspect-1.0 hlsssink

РЕДАКТИРОВАТЬ: исправить трубопровод, который вы предложили в комментариях

gst-launch-1.0 uridecodebin uri=file:///home/ubuntu/g-streamer-lively/skyrim.webm name=decbin ! queue ! videoconvert ! x264enc ! mpegtsmux name=muxer ! hlssink max-files=5 playlist-root=10.12.9.3 location=/var/www/html/hlssink decbin. ! queue ! audioconvert ! avenc_aac ! muxer.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .