<div dir="ltr">Hello,<div><br></div><div></div><div>gstreamer 1.0 fails to detect a klv metadata stream on certain files.  For example, see the sample file for ESRI's FMV extension: <a href="http://esriurl.com/FMVSampleCheyenne">http://esriurl.com/FMVSampleCheyenne</a> <br></div><div><br></div><div>If I run ffprobe on this file, I get:</div><div><br></div><div>$ ffprobe CheyenneVAhospital.mpeg4 <br>ffprobe version 4.2 Copyright (c) 2007-2019 the FFmpeg developers<br></div><div>...</div><div>Input #0, mpegts, from 'CheyenneVAhospital.mpeg4':<br>  Duration: 00:01:05.15, start: 271.125322, bitrate: 5535 kb/s<br>  Program 1 <br>    Stream #0:0[0x100]: Video: h264 (Baseline) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc<br>    Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 129 kb/s<br>    Stream #0:2[0x102]: Data: klv (KLVA / 0x41564C4B)<br>Unsupported codec with id 100356 for input stream 2<br></div><div><br></div><div>However, if I run gst-discoverer-1.0 (built from gst-build github on 6/21) on this file, I get: </div><div>$ gst-discoverer-1.0 CheyenneVAhospital.mpeg4 <br>Analyzing file:///home/aflores/Desktop/CheyenneVAhospital.mpeg4<br>Done discovering file:///[snip]/CheyenneVAhospital.mpeg4<br><br>Properties:<br>  Duration: 0:01:04.533864333<br>  Seekable: yes<br>  Live: no<br>  container: MPEG-2 Transport Stream<br>    audio: MPEG-2 AAC<br>      Stream ID: d5dea03afad24b384745b1909a8c321236d8570899490e8018cbbb58bb13eb4e:1/00000101<br>      Language: <unknown><br>      Channels: 2 (front-left, front-right)<br>      Sample rate: 48000<br>      Depth: 32<br>      Bitrate: 0<br>      Max bitrate: 0<br>    video: H.264 (Baseline Profile)<br>      Stream ID: d5dea03afad24b384745b1909a8c321236d8570899490e8018cbbb58bb13eb4e:1/00000100<br>      Width: 1920<br>      Height: 1080<br>      Depth: 24<br>      Frame rate: 30000/1001<br>      Pixel aspect ratio: 1/1<br>      Interlaced: false<br>      Bitrate: 0<br>      Max bitrate: 0<br></div><div><br></div><div>However, I have discovered that if I copy the file using ffmpeg:</div><div>$ ffmpeg -i CheyenneVAhospital.mpeg4 -map 0:0 -map 0:1 -map 0:2 -c copy copy.ts<br></div><div><br></div><div>And then run gst-discoverer on this file, gstreamer can now detect the klv stream:</div><div><br></div><div>$ gst-discoverer-1.0 copy.ts <br>Analyzing file:///home/aflores/Desktop/copy.ts<br>Done discovering file:///[snip]/copy.ts<br>Missing plugins<br> (gstreamer|1.0|gst-discoverer-1.0|meta/x-klv decoder|decoder-meta/x-klv)<br><br>Properties:<br>  Duration: 0:01:04.714110851<br>  Seekable: yes<br>  Live: no<br>  container: MPEG-2 Transport Stream<br>    unknown: meta/x-klv<br>    audio: MPEG-2 AAC<br>      Stream ID: b8cc9a4934c090599f66f9cfaafe0f433d249a18204856ece3313273331dc55f:1/00000101<br>      Language: <unknown><br>      Channels: 2 (front-left, front-right)<br>      Sample rate: 48000<br>      Depth: 32<br>      Bitrate: 0<br>      Max bitrate: 0<br>    video: H.264 (Baseline Profile)<br>      Stream ID: b8cc9a4934c090599f66f9cfaafe0f433d249a18204856ece3313273331dc55f:1/00000100<br>      Width: 1920<br>      Height: 1080<br>      Depth: 24<br>      Frame rate: 30000/1001<br>      Pixel aspect ratio: 1/1<br>      Interlaced: false<br>      Bitrate: 0<br>      Max bitrate: 0<br></div><div><br></div><div>Why is gstreamer unable to recognize the klv stream in the original file?  How does ffmpeg copy operation change the file such that the klv stream is now detected by gstreamer?</div><div><br></div><div>Arturo</div><div><br></div><div>p.s., This is a follow up to this thread: <a href="https://lists.freedesktop.org/archives/gstreamer-devel/2018-July/068698.html">https://lists.freedesktop.org/archives/gstreamer-devel/2018-July/068698.html</a></div><div><br></div></div>