[FFmpeg-devel] [PATCH 3/3] avformat/dashenc: always attempt to enable prft on ldash mode

Jeyapal, Karthick kjeyapal at akamai.com
Wed Feb 19 07:18:54 EET 2020


On 2/18/20 9:43 PM, James Almer wrote:
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
>  libavformat/dashenc.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
> index b910cc22d0..045d2f4df6 100644
> --- a/libavformat/dashenc.c
> +++ b/libavformat/dashenc.c
> @@ -1395,6 +1395,11 @@ static int dash_init(AVFormatContext *s)
>          c->frag_type = FRAG_TYPE_EVERY_FRAME;
>      }
>  
> +    if (c->ldash && !c->write_prft) {
> +        av_log(s, AV_LOG_INFO, "Enabling Producer Reference Time element for Low Latency mode\n");
> +        c->write_prft = 1;
> +    }
> +
PRFT elements has a significant bitrate overhead, especially in streaming mode when each frame is a moof fragment.
In terms of percentage of stream's bitrate this overhead will be a significant % for lower bitrate streams(such as audio streams).
For any application which does not need PRFT this is an unnecessary wastage of bits. 
Hence, I would advise against enabling PRFT without user control.

>      if (c->write_prft && !c->utc_timing_url) {
>          av_log(s, AV_LOG_WARNING, "Producer Reference Time element option will be ignored as utc_timing_url is not set\n");
>          c->write_prft = 0;



More information about the ffmpeg-devel mailing list