[Libav-user] streaming raw H.264 to HLS

Evan Odabashian eodabash at gmail.com
Tue Oct 9 03:38:21 EEST 2018

I'm trying to use libavformat to write a stream of H.264 data (coming from
the NvCodec API) directly (without re-encoding) to an HLS playlist. I'm
sending the packets returned by the encoder through av_parser_parse2 until
I get a complete frame, and then writing the resulting frame with
av_interleaved_write_frames. This is mostly working in that I get an m3u8
playlist + .ts segments that plays back successfully if it starts from the
first .ts segment (and can play through any number of subsequent segments).

I'm not able to start playback directly from any segment after the first
one however. Viewing the file details in Windows explorer for the first .ts
segment shows correct values for the frame dimensions, bitrate, and frame
rate. For all other segments however these values are wrong (and not
consistent from one file to the next). I'm pretty sure each new segment is
beginning on a keyframe (in that I see the new .ts file appear right after
the parser detects a keyframe and I write the output frame with
the AV_PKT_FLAG_KEY flag). I can change the segment duration to any value I
want (1 second, 10 seconds, etc) and see the same behavior I don't think
this is an issue with the incoming sample themselves.

Can anyone guess what might be the problem here, or have some ideas to try
and diagnose the problem further?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20181008/2171d4b0/attachment.html>

More information about the Libav-user mailing list