2017-01-12 65 views
0

Logitech C920 Webカメラから複数のビデオファイル(matroska)にMJPEGストリームを保存しようとしています。gstreamerを使用してwebcam jpegストリームを複数のファイルに保存

私は、このパイプラインを持っている:(1つのMKVファイルごとに60年代)それは予想通り、いくつかのファイルを出力

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 

私は、filesinkを使用して1つのファイルに保存すると、エラーなしでmkvファイルが生成されます。

複数のmkvファイルを適切に保存する方法はありますか? 他のコンテナもOKですが、トランスコードできず(低CPU負荷が必要です)、raw(ハイfpsのHDが必要)を使用できません。

私はUbuntu 16.04.1でGStreamer 1.8.2を使用しています。

ありがとうございました。

更新:

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 

をしかし、それは動作しません: は、以下のアドバイスに続いて、私はsplitmuxsinkと試みたファイルを分割ことはありませんし、サイズに成長し続けています。

答えて

0

以下のパイプラインが動作するようです:あなたがsplitingを行うためにsplitmuxsinkを使用しなければならないので、

gst-launch-1.0 -e v4l2src ! x264enc key-int-max=10 ! h264parse ! splitmuxsink muxer=matroskamux location='test1-%02d.mkv' max-size-time=60000000000 

multifilesink、コンテナフォーマットについて何も知らないしません。ここで

multifilesink docからの引用である:代わりにそのためsplitmuxsink要素を使用し、独立して 再生可能なMP4ファイルを作成するには、この要素を使用することはできません

+0

'x264enc key-int-max = 10'は再エンコードされていませんか?私はそれをすることはできません。また、Matroska/MP4コンテナ(h.264ではなく)を使用して元のMJPEGビデオを記録したいと思います。 –

+0

Matroskaコンテナにmjpegストリームを入れるだけなら、ああ、x264encを削除できます。私はちょうどmjpeg機能を持たない私のwebcamのためにそれを置いた。 –

+0

遅く返事を申し訳ありません。私は 'x264enc'要素なしで試しましたが、うまくいきません。私はその問題を質問に更新します。 –

関連する問題