Opened 8 months ago

#9134 new defect

HLS multi bitrate streaming, differ frame rate in master playlist

Reported by: krs_vital Owned by:
Priority: normal Component: avfilter
Version: git-master Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

how to make a master playlist with different framerate?

im using nvidia encoder GP100

im using latest ffmpeg:
ffmpeg version N-101355-gc6c82428af Copyright (c) 2000-2021 the FFmpeg developers

how make "-vf" option for one output playlist?
noted, input stream is interlaced stream, i want to do 50p and 25p by using option "-vf" for 50p "-vf yadif_cuda=1:-1:1", for 25p "-vf yadif_cuda=0:-1:1", i tried to do like this "-vf:v:0 yadif_cuda=1:-1:1" and "-vf:v:1 yadif_cuda=0:-1:1", but filter used for all output, can you fix this?

command:

/usr/local/bin/ffmpeg -copyts -hwaccel cuda -hwaccel_output_format cuda -err_detect ignore_err -correct_ts_overflow 0 -overrun_nonfatal 1 -i udp://233.170.170.87:58631 -y -sn -dn -master_pl_name FB_HD.m3u8 -map v:0 -c:v:0 h264_nvenc -b:v:0 10M -map a:0 -c:a:0 aac -map v:0 -c:v:1 h264_nvenc -b:v:1 5M -map a:0 -c:a:1 aac -var_stream_map "v:0,a:0 v:1,a:1" -ignore_unknown -strict -2 -strftime 1 -strftime_mkdir 1 -g 100 -preset p7 -vf yadif_cuda=1:-1:1 -bf:v 3 -hls_time 10 -hls_flags omit_endlist -hls_segment_filename /store/records/FB_HD/%Y/%m/%d/%H/%s_%v.ts /hls/tmp/FB_HD_%v.m3u8

and for using frame rate in master playlist is needed to do some changes in "hlsplaylist.c"

diff -u ./hlsplaylist.c /var/db/pack/FFmpeg/libavformat/hlsplaylist.c
--- ./hlsplaylist.c 2021-03-02 11:29:10.080910505 +0000
+++ /var/db/pack/FFmpeg/libavformat/hlsplaylist.c 2021-03-02 08:06:59.483249236 +0000
@@ -84,6 +84,8 @@

if (st && st->codecpar->width > 0 && st->codecpar->height > 0)

avio_printf(out, ",RESOLUTION=%dx%d", st->codecpar->width,

st->codecpar->height);

+ if(st->avg_frame_rate.num > 25)
+ avio_printf(out, ",FRAME-RATE=%d", st->avg_frame_rate.num);

if (codecs && codecs[0])

avio_printf(out, ",CODECS=\"%s\"", codecs);

if (agroup && agroup[0])

Change History (0)

Note: See TracTickets for help on using tickets.