[FFmpeg-devel] [PATCH] avformat/hlsenc: Dont write stream info for agroup

刘歧 lq at chinaffmpeg.org
Thu Jan 18 11:43:58 EET 2018



> On 18 Jan 2018, at 17:09, Brendan McGrath <redmcg at redmandi.dyndns.org> wrote:
> 
> When using an 'agroup' within var_stream_map - the audio stream is
> being added to the master playlist file as both an audio rendition
> and an individual stream (with an AUDIO reference back to itself).
https://patchwork.ffmpeg.org/patch/7229/

Can this patch pass your test case?
> 
> This patch ensures an audio rendition does not also appear within
> the stream info list.
> 
> What follows is an example of the command to create this issue and
> the contents of the master playlist before and after this patch is
> applied:
> 
> ffmpeg -i in.ts -b:a:0 128k -b:v:0 1800k -b:v:1 1024k -map 0:a \
> -map 0:v -map 0:v -f hls -var_stream_map "a:0,agroup:audio_0 "\
> "v:0,agroup:audio_0 v:1,agroup:audio_0" -master_pl_name \
> tv_hls.m3u8 tv_hls_%v.m3u8
> 
> Before:
> #EXTM3U
> #EXT-X-VERSION:3
> #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_audio_0",NAME="audio_0",DEFAULT=YES,URI="tv_hls_0.m3u8"
> #EXT-X-STREAM-INF:BANDWIDTH=140800,AUDIO="group_audio_0"
> tv_hls_0.m3u8
> 
> #EXT-X-STREAM-INF:BANDWIDTH=2120800,RESOLUTION=1920x1080,AUDIO="group_audio_0"
> tv_hls_1.m3u8
> 
> #EXT-X-STREAM-INF:BANDWIDTH=1267200,RESOLUTION=1920x1080,AUDIO="group_audio_0"
> tv_hls_2.m3u8
> 
> After:
> #EXTM3U
> #EXT-X-VERSION:3
> #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_audio_0",NAME="audio_0",DEFAULT=YES,URI="tv_hls_0.m3u8"
> #EXT-X-STREAM-INF:BANDWIDTH=2120800,RESOLUTION=1920x1080,AUDIO="group_audio_0"
> tv_hls_1.m3u8
> 
> #EXT-X-STREAM-INF:BANDWIDTH=1267200,RESOLUTION=1920x1080,AUDIO="group_audio_0"
> tv_hls_2.m3u8
> 
> Signed-off-by: Brendan McGrath <redmcg at redmandi.dyndns.org>
> ---
> 
> Pre-patch - the hls stream I was testing would not play on the iOS devices I was testing with.
> 
> With the patch applied - they now play the stream
> 
> libavformat/hlsenc.c | 3 +++
> 1 file changed, 3 insertions(+)
> 
> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
> index e36120c..a75853b 100644
> --- a/libavformat/hlsenc.c
> +++ b/libavformat/hlsenc.c
> @@ -1172,6 +1172,9 @@ static int create_master_playlist(AVFormatContext *s,
>     for (i = 0; i < hls->nb_varstreams; i++) {
>         vs = &(hls->var_streams[i]);
> 
> +        if (!vs->has_video && !vs->has_subtitle && vs->agroup)
> +            continue;
> +
>         m3u8_name_size = strlen(vs->m3u8_name) + 1;
>         m3u8_rel_name = av_malloc(m3u8_name_size);
>         if (!m3u8_rel_name) {
> -- 
> 2.7.4
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel





More information about the ffmpeg-devel mailing list