Take http_flv as example, srs can accept both RTMP streams with only audio, only video or both audio and video streams. It is controlled by above three properties.
But guess_has_av is not implemented by http_ts. The problem is that if I want publish a RTMP stream with audio or video track, the has_audio and has_video, which are default true/on, must to be config to match the RTMP stream, otherwise the mpegts.js player can't play the http-ts stream.
open chrome browser, open http://localhost:8080/players/srs_player.html?schema=http, go to LivePlayer, input URL: http://localhost:8080/live/livestream.ts, click play.
the http://localhost:8080/live/livestream.ts can not play.
Solution
Let http-ts support guess_has_av, http-flv already supported. The guess_has_av default value is ture/on, so the http-ts|flv can play any streams with audio, video or both.
Describe
http_remux feature support config
has_audio
,has_video
&guess_has_av
prop.https://github.com/ossrs/srs/blob/282d94d7bbfa127868caab401bb7616e26d4c54d/trunk/src/app/srs_app_http_stream.cpp#L630-L632
Take
http_flv
as example,srs
can accept both RTMP streams with only audio, only video or both audio and video streams. It is controlled by above three properties.But
guess_has_av
is not implemented byhttp_ts
. The problem is that if I want publish a RTMP stream with audio or video track, thehas_audio
andhas_video
, which are default true/on, must to be config to match the RTMP stream, otherwise thempegts.js
player can't play thehttp-ts
stream.How to reproduce
export SRS_VHOST_HTTP_REMUX_HAS_AUDIO=on; export SRS_VHOST_HTTP_REMUX_HAS_VIDEO=on; export SRS_VHOST_HTTP_REMUX_GUESS_HAS_AV=on; ./objs/srs -c conf/http.ts.live.conf
ffmpeg -re -stream_loop -1 -i srs/trunk/doc/source.200kbps.768x320.flv -vn -acodec copy -f flv rtmp://localhost/live/livestream
http://localhost:8080/players/srs_player.html?schema=http
, go toLivePlayer
, input URL:http://localhost:8080/live/livestream.ts
, click play.http://localhost:8080/live/livestream.ts
can not play.Solution
Let
http-ts
supportguess_has_av
,http-flv
already supported. Theguess_has_av
default value is ture/on, so thehttp-ts|flv
can play any streams with audio, video or both.