Re: [FFmpeg-devel] [PATCH] avformat/dashenc: only write video streams into HLS master playlist

2018-10-11 Thread Jeyapal, Karthick

On 9/14/18 12:38 PM, Jian Yang wrote:
> Tool mediastreamvalidator reports error "Variant media_[N].m3u8 is
> missing audio group" for audio streams in HLS master playlist. As audio
> streams are already listed in audio group, skip them as variant media
> streams in master playlist.
> ---
>  libavformat/dashenc.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
> index 87e31e25fc..45763301db 100644
> --- a/libavformat/dashenc.c
> +++ b/libavformat/dashenc.c
> @@ -911,8 +911,10 @@ static int write_manifest(AVFormatContext *s, int final)
>  OutputStream *os = >streams[i];
>  char *agroup = NULL;
>  int stream_bitrate = st->codecpar->bit_rate + os->muxer_overhead;
> +if (st->codecpar->codec_type != AVMEDIA_TYPE_VIDEO)
> +continue;
>  av_strlcpy(codec_str, os->codec_str, sizeof(codec_str));
> -if ((st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) && 
> max_audio_bitrate) {
> +if (max_audio_bitrate) {
>  agroup = (char *)audio_group;
>  stream_bitrate += max_audio_bitrate;
>  av_strlcat(codec_str, ",", sizeof(codec_str));
Pushed this patch. Thanks.
In spite of my original objections for supporting audio-only, I am pushing this 
patch as I am hearing reports of HLS master playlist generated being not 
playable in iOS devices due to this issue.
Hence pushing this patch becomes important for supporting basic HLS playback is 
more important than supporting audio-only HLS stream.

Regards,
Karthick

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avformat/dashenc: only write video streams into HLS master playlist

2018-09-15 Thread Jeyapal, Karthick

On 9/14/18 6:20 PM, Jian Yang wrote:
> Agree! Audio-only stream should be supported.
>
> Just tested adding the missed audio group for audio stream. Tool
> mediastreamvalidator doesn't report error message any more, and the
> playlist can be played in Safari.
Yes, I observed it too. But it throws a different error when there are two 
audio-only streams with different bitrates.
For example,
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_A1",NAME="audio_1",DEFAULT=YES,URI="media_1.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_A1",NAME="audio_2",DEFAULT=NO,URI="media_2.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=6195622,RESOLUTION=640x360,CODECS="vp09.00.21.08,mp4a.40.2",AUDIO="group_A1"
media_0.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=129792,CODECS="mp4a.40.2",AUDIO="group_A1"
media_1.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=193792,CODECS="mp4a.40.2",AUDIO="group_A1"
media_2.m3u8

Error: Measured peak bitrate compared to master playlist declared value exceeds 
error tolerance
--> Detail:  Measured: 195.73 kb/s, Master playlist: 129.79 kb/s, Error: 
33.69%, Combined rendition name: audio_2
--> Compare: media_1.m3u8

>
> Could you please help to add audio group for audio streams? I can update
> the patch if you prefer me to do it.
Do you really need to remove that mediastreamvalidator error. Because Safari, 
hls.js and other popular players are playing out properly even with that 
mediastreamvalidator error. 

If you really want to remove that mediastreamvalidator error, one option it to 
slightly modify your original patch and add a command line option for removing 
audio-only streams. In that way you could remove that audio-only stream from 
master playlist by enabling that option, while leaving the original behavior 
untouched for others. Please let me know if you any more clarifications and/or 
help. 
>
> Thank you very much!
>
>
> Jeyapal, Karthick  于2018年9月14日周五 下午4:47写道:
>
>>
>> On 9/14/18 12:38 PM, Jian Yang wrote:
>>> Tool mediastreamvalidator reports error "Variant media_[N].m3u8 is
>>> missing audio group" for audio streams in HLS master playlist. As audio
>>> streams are already listed in audio group, skip them as variant media
>>> streams in master playlist.
>> Skipping the audio stream altogether is not a good idea.
>> Because somebody might want to play an audio-only stream.
>> One possible fix could be to add the missing audio group, for audio
>> streams as well.
>> Or maybe the mediastreamvalidator tool is wrong as the spec doesn't
>> mandate the presence of AUDIO group in all variants.
>>> ---
>>>  libavformat/dashenc.c | 4 +++-
>>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
>>> index 87e31e25fc..45763301db 100644
>>> --- a/libavformat/dashenc.c
>>> +++ b/libavformat/dashenc.c
>>> @@ -911,8 +911,10 @@ static int write_manifest(AVFormatContext *s, int
>> final)
>>>  OutputStream *os = >streams[i];
>>>  char *agroup = NULL;
>>>  int stream_bitrate = st->codecpar->bit_rate +
>> os->muxer_overhead;
>>> +if (st->codecpar->codec_type != AVMEDIA_TYPE_VIDEO)
>>> +continue;
>>>  av_strlcpy(codec_str, os->codec_str, sizeof(codec_str));
>>> -if ((st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) &&
>> max_audio_bitrate) {
>>> +if (max_audio_bitrate) {
>>>  agroup = (char *)audio_group;
>>>  stream_bitrate += max_audio_bitrate;
>>>  av_strlcat(codec_str, ",", sizeof(codec_str));
>>
>>
>

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avformat/dashenc: only write video streams into HLS master playlist

2018-09-14 Thread Jian Yang
Agree! Audio-only stream should be supported.

Just tested adding the missed audio group for audio stream. Tool
mediastreamvalidator doesn't report error message any more, and the
playlist can be played in Safari.

Could you please help to add audio group for audio streams? I can update
the patch if you prefer me to do it.

Thank you very much!


Jeyapal, Karthick  于2018年9月14日周五 下午4:47写道:

>
> On 9/14/18 12:38 PM, Jian Yang wrote:
> > Tool mediastreamvalidator reports error "Variant media_[N].m3u8 is
> > missing audio group" for audio streams in HLS master playlist. As audio
> > streams are already listed in audio group, skip them as variant media
> > streams in master playlist.
> Skipping the audio stream altogether is not a good idea.
> Because somebody might want to play an audio-only stream.
> One possible fix could be to add the missing audio group, for audio
> streams as well.
> Or maybe the mediastreamvalidator tool is wrong as the spec doesn't
> mandate the presence of AUDIO group in all variants.
> > ---
> >  libavformat/dashenc.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
> > index 87e31e25fc..45763301db 100644
> > --- a/libavformat/dashenc.c
> > +++ b/libavformat/dashenc.c
> > @@ -911,8 +911,10 @@ static int write_manifest(AVFormatContext *s, int
> final)
> >  OutputStream *os = >streams[i];
> >  char *agroup = NULL;
> >  int stream_bitrate = st->codecpar->bit_rate +
> os->muxer_overhead;
> > +if (st->codecpar->codec_type != AVMEDIA_TYPE_VIDEO)
> > +continue;
> >  av_strlcpy(codec_str, os->codec_str, sizeof(codec_str));
> > -if ((st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) &&
> max_audio_bitrate) {
> > +if (max_audio_bitrate) {
> >  agroup = (char *)audio_group;
> >  stream_bitrate += max_audio_bitrate;
> >  av_strlcat(codec_str, ",", sizeof(codec_str));
>
>

-- 
Best Regards
杨剑 (Jian Yang)
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] avformat/dashenc: only write video streams into HLS master playlist

2018-09-14 Thread Jeyapal, Karthick

On 9/14/18 12:38 PM, Jian Yang wrote:
> Tool mediastreamvalidator reports error "Variant media_[N].m3u8 is
> missing audio group" for audio streams in HLS master playlist. As audio
> streams are already listed in audio group, skip them as variant media
> streams in master playlist.
Skipping the audio stream altogether is not a good idea. 
Because somebody might want to play an audio-only stream.
One possible fix could be to add the missing audio group, for audio streams as 
well.
Or maybe the mediastreamvalidator tool is wrong as the spec doesn't mandate the 
presence of AUDIO group in all variants.
> ---
>  libavformat/dashenc.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
> index 87e31e25fc..45763301db 100644
> --- a/libavformat/dashenc.c
> +++ b/libavformat/dashenc.c
> @@ -911,8 +911,10 @@ static int write_manifest(AVFormatContext *s, int final)
>  OutputStream *os = >streams[i];
>  char *agroup = NULL;
>  int stream_bitrate = st->codecpar->bit_rate + os->muxer_overhead;
> +if (st->codecpar->codec_type != AVMEDIA_TYPE_VIDEO)
> +continue;
>  av_strlcpy(codec_str, os->codec_str, sizeof(codec_str));
> -if ((st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) && 
> max_audio_bitrate) {
> +if (max_audio_bitrate) {
>  agroup = (char *)audio_group;
>  stream_bitrate += max_audio_bitrate;
>  av_strlcat(codec_str, ",", sizeof(codec_str));

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel