<div dir="auto">Which GStreamer version is this ? There was a recent fix in v4l2src that fixes jpeg buffer to be marked as keyframes. The index in matroskamux is set to point to keyframes (media agnostic code). This is fixed in 1.12.3 stable release.<div dir="auto"><br></div><div dir="auto"><a href="https://bugzilla.gnome.org/show_bug.cgi?id=785990">https://bugzilla.gnome.org/show_bug.cgi?id=785990</a><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">Le 12 oct. 2017 3:30 PM, "Daniel Gnoutcheff" <<a href="mailto:gnoutchd@softwarefreedom.org">gnoutchd@softwarefreedom.org</a>> a écrit :<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I have a few USB uvcvideo devices capable of generating MJPEG video. I'd<br>
like to dump video from these devices and, if possible, avoid burning<br>
CPU cycles on transcoding.<br>
<br>
If I run this:<br>
<br>
  gst-launch-1.0 -e v4l2src device=/dev/video1 ! image/jpeg ! \<br>
    matroskamux ! filesink location=camera.mkv<br>
<br>
... I get a pipeline that runs, and I can even play back the resulting<br>
file.  However, none of the media players I tried are able to seek<br>
properly.  If I try to seek forward in gst123, it hangs and spins CPU<br>
until I kill -9 it.  VLC hangs for several seconds and squawks:<br>
<br>
> [00007eff80000178] clock decoder error: Timestamp conversion failed (delay 300000, buffering 100000, bound 9000000)<br>
> [00007eff80000178] core decoder error: Could not convert timestamp 1060486159<br>
<br>
... while mpv just quits with:<br>
<br>
> [mkv] no target for seek found<br>
> [mkv] Corrupt file detected. Trying to resync starting from position 36816083...<br>
> (...) V: 00:00:09 / 00:01:36 (10%)<br>
> [mkv] Cluster found at 214146677.<br>
> (...) V: 00:00:09 / 00:01:36 (10%)<br>
><br>
><br>
> Exiting... (End of file)<br>
<br>
However, if I add a "jpegdec ! jpegenc" to the pipeline:<br>
<br>
  gst-launch-1.0 -e v4l2src device=/dev/video1 ! image/jpeg ! \<br>
    jpegdec ! jpegenc ! \<br>
    matroskamux ! filesink location=camera.re-encoded.mkv<br>
<br>
... then all of those errors disappear.<br>
<br>
I'm quite puzzled.  I thought that "seekability" was a muxer concern, so<br>
I'd think that the JPEG decode-encode cycle would be a (expensive)<br>
no-op.  What's wrong with this pipeline, and what on earth is "jpegdec !<br>
jpegenc" doing to fix it?<br>
<br>
I've reproduced this behavior on two uvcvideo devices (my laptop's<br>
camera and an HDMI grabber).  I'm running Debian stretch, with gstreamer<br>
1.10.4, gstreamer-plugins-good 1.10.4, gst123 0.3.3, mpv 0.23.0, and VLC<br>
2.2.6 (all as shipped from Debian).<br>
<br>
Thanks,<br>
Daniel<br>
<br>
<br>______________________________<wbr>_________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.<wbr>freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/gstreamer-<wbr>devel</a><br>
<br></blockquote></div></div>