klv stream not detected
Arturo Flores
arflobow at gmail.com
Thu Jun 25 02:42:36 UTC 2020
Hello,
gstreamer 1.0 fails to detect a klv metadata stream on certain files. For
example, see the sample file for ESRI's FMV extension:
http://esriurl.com/FMVSampleCheyenne
If I run ffprobe on this file, I get:
$ ffprobe CheyenneVAhospital.mpeg4
ffprobe version 4.2 Copyright (c) 2007-2019 the FFmpeg developers
...
Input #0, mpegts, from 'CheyenneVAhospital.mpeg4':
Duration: 00:01:05.15, start: 271.125322, bitrate: 5535 kb/s
Program 1
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
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz,
stereo, fltp, 129 kb/s
Stream #0:2[0x102]: Data: klv (KLVA / 0x41564C4B)
Unsupported codec with id 100356 for input stream 2
However, if I run gst-discoverer-1.0 (built from gst-build github on 6/21)
on this file, I get:
$ gst-discoverer-1.0 CheyenneVAhospital.mpeg4
Analyzing file:///home/aflores/Desktop/CheyenneVAhospital.mpeg4
Done discovering file:///[snip]/CheyenneVAhospital.mpeg4
Properties:
Duration: 0:01:04.533864333
Seekable: yes
Live: no
container: MPEG-2 Transport Stream
audio: MPEG-2 AAC
Stream ID:
d5dea03afad24b384745b1909a8c321236d8570899490e8018cbbb58bb13eb4e:1/00000101
Language: <unknown>
Channels: 2 (front-left, front-right)
Sample rate: 48000
Depth: 32
Bitrate: 0
Max bitrate: 0
video: H.264 (Baseline Profile)
Stream ID:
d5dea03afad24b384745b1909a8c321236d8570899490e8018cbbb58bb13eb4e:1/00000100
Width: 1920
Height: 1080
Depth: 24
Frame rate: 30000/1001
Pixel aspect ratio: 1/1
Interlaced: false
Bitrate: 0
Max bitrate: 0
However, I have discovered that if I copy the file using ffmpeg:
$ ffmpeg -i CheyenneVAhospital.mpeg4 -map 0:0 -map 0:1 -map 0:2 -c copy
copy.ts
And then run gst-discoverer on this file, gstreamer can now detect the klv
stream:
$ gst-discoverer-1.0 copy.ts
Analyzing file:///home/aflores/Desktop/copy.ts
Done discovering file:///[snip]/copy.ts
Missing plugins
(gstreamer|1.0|gst-discoverer-1.0|meta/x-klv decoder|decoder-meta/x-klv)
Properties:
Duration: 0:01:04.714110851
Seekable: yes
Live: no
container: MPEG-2 Transport Stream
unknown: meta/x-klv
audio: MPEG-2 AAC
Stream ID:
b8cc9a4934c090599f66f9cfaafe0f433d249a18204856ece3313273331dc55f:1/00000101
Language: <unknown>
Channels: 2 (front-left, front-right)
Sample rate: 48000
Depth: 32
Bitrate: 0
Max bitrate: 0
video: H.264 (Baseline Profile)
Stream ID:
b8cc9a4934c090599f66f9cfaafe0f433d249a18204856ece3313273331dc55f:1/00000100
Width: 1920
Height: 1080
Depth: 24
Frame rate: 30000/1001
Pixel aspect ratio: 1/1
Interlaced: false
Bitrate: 0
Max bitrate: 0
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?
Arturo
p.s., This is a follow up to this thread:
https://lists.freedesktop.org/archives/gstreamer-devel/2018-July/068698.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20200624/0dcee6fa/attachment-0001.htm>
More information about the gstreamer-devel
mailing list