Вот:
gst-launch-1.0 -e autovideosrc ! queue ! videoconvert ! mkv. autoaudiosrc ! queue ! audioconvert ! mkv. matroskamux name=mkv ! filesink location=test.mkv sync=false
Вот как это работает:
- Мы получаем видео с веб-камеры, используя
autovideosrc
. - Затем мы помещаем этот канал в его собственный поток, выводя его в
queue
. - Видеопоток от
queue
идет кvideoconvert
где он конвертируется (я не уверен, что этот шаг необходим). - Наконец, видео поток переходит в элемент с именем
mkv
, который имеет типmatroskamux
. Этот элемент преобразует видео канал в Matroska. - После этого мы получаем аудио с помощью
autoaudiosrc
. - Мы размещаем канал из
autoaudiosrc
другой ветки, используяqueue
. - Из
queue
аудио идет туда,audioconvert
где он конвертируется (также не уверен, если это необходимо). - Преобразованный звук идет на тот же
matroskamux
элементmkv
. Здесь аудио канал преобразуется в Matroska. - Поскольку аудио- и видеопотоки идут к одному и тому же элементу, они объединяются в один канал Matroska.
- Наконец, этот канал Matroska сохраняется в файл с помощью
filesink
. Возможно, вам придется установить,sync=false
если ваш компьютер не зверь.
Вот и все. Кроме того, если кому-то интересно, почему я написал в вопросе, что эта команда не записывает звук, это потому, что я забыл включить микрофон.