Я пытаюсь сохранить поток MJPEG с веб-камеры logitech C920 в несколько видеофайлов (matroska).Сохранение потока веб-камеры jpeg для нескольких файлов с gstreamer
У меня есть этот трубопровод: (1 мы файл каждые 6)
gst-launch-1.0 -ev v4l2src device=/dev/video0 \
! image/jpeg,width=1280,height=720,framerate=24/1 \
! matroskamux ! multifilesink next-file=max-duration max-file-duration=60000000000 location='test1-%02d.mkv'
Он выводит несколько файлов, как и ожидался, но файлы имеют ошибки, поэтому такие инструменты, как Avidemux не могут воспроизводить их. mkvalidator сообщает эти:
WRN080: Unknown element [FF] at 293 size 88
WRN080: Unknown element [FF] at 494 size 64
WRN080: Unknown element [7D][01] at 566 size w98603107602
WRN801: The segment has no SeekHead section
WRN0B8: Track #1 is defined but has no frame
BTW, сохранение в одном файле с помощью filesink создает файл MKV без ошибок.
Есть ли способ сохранить несколько файлов mkv правильно? Любой другой контейнер также в порядке, но я не могу перекодировать (требуется низкая загрузка процессора), и я не могу использовать raw (требуется HD с высоким fps).
Я использую GStreamer 1.8.2 на Ubuntu 16.04.1.
Спасибо.
Обновление: После ниже советы, я попытался с splitmuxsink:
gst-launch-1.0 -e v4l2src device=/dev/video1 \
! image/jpeg,width=1280,height=720,framerate=24/1 \
! splitmuxsink muxer=matroskamux location='test1-%02d.mkv' \
max-size-time=10000000000
Но это не работает: файл никогда не расщепляется и продолжает расти в размерах.
Не является ли 'x264enc ключ-int-max = 10' reencoding? Я не могу этого сделать. Кроме того, я хочу записать оригинальное видео MJPEG, используя контейнер Matroska/MP4, а не h.264. –
Ах, вы можете удалить x264enc, если хотите просто разместить свой поток mjpeg в контейнере Matroska. Я просто поместил это для своей веб-камеры, у которой нет возможности mjpeg. –
Извините за поздний ответ. Я пробовал без элемента 'x264enc', но он не работает. Я обновлю вопрос с проблемой. –