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: [email protected] [mailto:[email protected]] On Behalf Of wm4 Sent: Wednesday, August 13, 2014 10:08 AM To: [email protected] Subject: EXTERNAL: Re: [Libav-user] AV_CODEC_ID_SMPTE_KLV not recognized On Wed, 13 Aug 2014 15:53:33 +0000 "Sears, Zachary" <[email protected]> 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 [email protected] http://ffmpeg.org/mailman/listinfo/libav-user _______________________________________________ Libav-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/libav-user
