[Libav-user] EXTERNAL: Re: AV_CODEC_ID_SMPTE_KLV not recognized

Anthony Clark clark.anthony.g at gmail.com
Wed Aug 13 19:50:22 CEST 2014

I'm attempting to do the *exact* same thing. I'm working on a KLV enc/dec
pair for ffmpeg but I will not be able to release it :(.

However, if you grep ffmpeg's source (I'm working with 1.2.5), I see plenty
of references (~10) to KVL in the MXF files. While this doesn't give a hint
on how to create a new stream like you want, you can see it can be done -
and I think the mxf KLV stuff is why that codec tag exists in ffmpeg at all.

I hope someone else can shed some more light on this. Very soon I will be
putting my KLV enc/dec functions into a working ffmpeg "plugin" - thus
creating a av_stream with my custom codec (and eventually into an MPEG2

I wish you luck and I will report back here with my findings / code /
progress. Sadly, you shouldn't count on me for this - but I will do my best
to rely the information back.


On Wed, Aug 13, 2014 at 1:43 PM, Sears, Zachary <zachary.sears at lmco.com>

> Thanks for the quick reply, I started down that path and do have code that
> generates valid TS packets with KLV data, from what you're saying it sounds
> like that was the right path to take.  I guess the problem that I keep
> getting hung up on after that is how to create the additional stream to
> have a type of AVMEDIA_TYPE_VIDEO and at least an id of
> AV_CODEC_ID_SMPTE_KLV, from the output of ffprobe it certainly seems like
> this is recognized by ffmpeg but I can't figure out how to do it.  For the
> video stream at least I do avformat_new_stream(avFormatContext, avCodec),
> but since there is no codec for the KLV data (NULL is returned from
> avcodec_find_encoder), I guess I am a little confused on how to get to that
> point.  The end that I need to find eventually is getting down to
> av_interleaved_write_frame where the AVFormatContext has a valid data
> stream.
> -----Original Message-----
> From: libav-user-bounces at ffmpeg.org [mailto:libav-user-bounces at ffmpeg.org]
> On Behalf Of wm4
> Sent: Wednesday, August 13, 2014 10:08 AM
> To: libav-user at ffmpeg.org
> Subject: EXTERNAL: Re: [Libav-user] AV_CODEC_ID_SMPTE_KLV not recognized
> On Wed, 13 Aug 2014 15:53:33 +0000
> "Sears, Zachary" <zachary.sears at lmco.com> wrote:
> > Hello,
> >
> > I am trying to create an application that can add a KLV data stream into
> an MPEG-TS stream.  I started with the muxing.C example and have everything
> working as far as creating a valid MPEG-TS video, but when I try and
> include the KLV stream the encoder can't be found.  In particular it is
> failing when I try AVCodec *codec =
> avcodec_find_encoder(AV_CODEC_ID_SMPTE_KLV), it returns with a failure to
> open the encoder.  When I add the video stream the codec id is
> AV_CODEC_ID_MPEG2VIDEO which it finds perfectly fine and everything works
> just fine.  I am using ffmpeg 2.1.4.
> >
> > I also have a known good sample video that has KLV metadata in it and
> when I try to use ffprobe on that video it finds both streams but returns
> with "Unsupported codec with id 1263294017 for input stream 1" where input
> stream 1 is the KLV stream.  Could it just be that I missed a flag at
> compile time, or simply need a newer version of FFMPEG?
> >
> > Thanks for any help
> I have no idea what KLV is, but looking at the source, it seems KLV is
> supported for demuxing and muxing (in libavformat), but there are no
> encoders or decoders. I assume this means you have to interpret/generate
> KLV data yourself.
> _______________________________________________
> Libav-user mailing list
> Libav-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/libav-user
> _______________________________________________
> Libav-user mailing list
> Libav-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/libav-user
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20140813/9229a71e/attachment.html>

More information about the Libav-user mailing list