On Tue, 25 Feb 2020 at 17:13, Simon Brown <[email protected]> wrote:

> I'm trying to convert an incoming transport stream to DASH without
> re-encoding.
>
> I've done this using two separate ffmpeg commands and it works, but as
> each instance of FFMpeg spends time locking onto the stream, finding the
> first I-frame, etc the resulting latency is unacceptable.  I thought I
> could streamline this somewhat by writing it using the libav libraries that
> come with FFmpeg.
>
> I've taken the demux_decode.c example and receive the stream.  I don't
> decode it, I just get a packet from the stream using:
>
> av_read_frame(fmt_ctx, &pkt)
>
> Once read, I try and write it to the stream using:
>
>    ret = av_interleaved_write_frame(oc, &pkt);
>
> having setup oc as an output context for muxer "dash".
>
>     avformat_alloc_output_context2(&oc, NULL, "dash", filename);
>
> However, I seem to have missed some vital steps, because the dash muxer
> responds with:
> Output #0, dash, to 'vid.mpd':
>     Stream #0:0: Unknown: none
>
> The muxing.c example is all about taking some generated frames and
> encoding them before sending them out and that sets up a codec context
> which is added to the dash muxer, but I don't want a codec context, because
> I don't want to encode an already encoded stream.
>
> Any help would be greatly appreciated.
>
> Regards,
> Simon
> _______________________________________________
> Libav-user mailing list
> [email protected]
> https://ffmpeg.org/mailman/listinfo/libav-user
>
> To unsubscribe, visit link above, or email
> [email protected] with subject "unsubscribe".


See the "remuxing.c" example.
Use avcodec_parameters_copy to copy the codecpar from the demuxer's
AVStream to the muxer's one.
_______________________________________________
Libav-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/libav-user

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to