Greetings,
I searched the forums, but I didn’t find any thread about this, I’m sorry if I missed something. If this is the wrong place to post this, could you please move it to the correct location?
I am experiencing weird behavior when trying to stream VOD DASH content - at one point in time the get request for the next segment simply fails with 404 error code, it seems the requested segment does not exist???
I’m running the dashif JS player
With each of the streams available in that list things work just fine, so the player seems to be alright.
Therefore, it should to be a problem with the content.
The smil for my videos is as follows
<smil>
<head>
</head>
<body>
<switch>
<video src="mp4:BM240a.mp4" system-bitrate="250000"/>
<video src="mp4:BM240b.mp4" system-bitrate="500000"/>
<video src="mp4:BM360a.mp4" system-bitrate="1000000"/>
<video src="mp4:BM360b.mp4" system-bitrate="2000000"/>
<video src="mp4:BM480a.mp4" system-bitrate="3000000"/>
<video src="mp4:BM480b.mp4" system-bitrate="4000000"/>
<video src="mp4:BM720a.mp4" system-bitrate="5000000"/>
<video src="mp4:BM720b.mp4" system-bitrate="6000000"/>
<video src="mp4:BM1080a.mp4" system-bitrate="7000000"/>
<video src="mp4:BM1080b.mp4" system-bitrate="8000000"/>
</switch>
</body>
</smil>
Wowza Server is running on one PC in my home network while the Client is running on another PC in the very same network.
With that setup I am able to play Smooth Streaming, HLS and Flash HTTP VOD streams without any issues, but DASH at one point fails with the mentioned missing(?) chunk.
It has been the same in multiple tests, always fails at one point.
What’s puzzling, however, is that the lower qualities up to and including
Content was encoded with ffmpeg as follows (if that helps)
:: Settings for video encoding with ffmpeg
:: frameRate
set fR=24
:: GOP size
set GOP=120
set inputFile=big_buck_bunny_1080p_h264.mov
::240p set
ffmpeg -y -i %inputFile% -s 426x240 -y -strict experimental -an -vcodec libx264 -vprofile baseline -g %GOP% -r %fR% -b:v 250k -threads 64 BM240a.mp4
ffmpeg -y -i %inputFile% -s 426x240 -y -strict experimental -an -vcodec libx264 -vprofile baseline -g %GOP% -r %fR% -b:v 500k -threads 64 BM240b.mp4
::360p set
ffmpeg -y -i %inputFile% -s 640x360 -y -strict experimental -an -vcodec libx264 -vprofile baseline -g %GOP% -r %fR% -b:v 1000k -threads 64 BM360a.mp4
ffmpeg -y -i %inputFile% -s 640x360 -y -strict experimental -an -vcodec libx264 -vprofile baseline -g %GOP% -r %fR% -b:v 2000k -threads 64 BM360b.mp4
::480p set
ffmpeg -y -i %inputFile% -s 854x480 -y -strict experimental -an -vcodec libx264 -vprofile baseline -g %GOP% -r %fR% -b:v 3000k -threads 64 BM480a.mp4
ffmpeg -y -i %inputFile% -s 854x480 -y -strict experimental -an -vcodec libx264 -vprofile baseline -g %GOP% -r %fR% -b:v 4000k -threads 64 BM480b.mp4
::720p set
ffmpeg -y -i %inputFile% -s 1280x720 -y -strict experimental -an -vcodec libx264 -vprofile baseline -g %GOP% -r %fR% -b:v 5000k -threads 64 BM720a.mp4
ffmpeg -y -i %inputFile% -s 1280x720 -y -strict experimental -an -vcodec libx264 -vprofile baseline -g %GOP% -r %fR% -b:v 6000k -threads 64 BM720b.mp4
::1080p set
ffmpeg -y -i %inputFile% -s 1920x1080 -y -strict experimental -an -vcodec libx264 -vprofile baseline -g %GOP% -r %fR% -b:v 7000k -threads 4 BM1080a.mp4
ffmpeg -y -i %inputFile% -s 1920x1080 -y -strict experimental -an -vcodec libx264 -vprofile baseline -g %GOP% -r %fR% -b:v 8000k -threads 4 BM1080b.mp4
I’m using no audio portion, but that shouldn’t be a problem. It’s also the same for the same settings but WITH audio.
I also tried different vprofiles (specifically main and high), not setting the keyframe interval and also using " -force_key_frames expr:gte(t,n_forced*5) " to set keyframe inverals instead.
To no avail, all the same, it doesn’t work.
The other streaming solutions have no issues with the content, so there seems to be an issue with the dash chunking/segment generation?
It’s also working up to that one point of failure so it seems to be set-up right.
However, there’s obviously (hopefully?) something I’m missing, would be great if you have any ideas as to what is going on here.
If you need any further information, please let me know.
On a second note, I set
<HTTPStreamer>
<!-- Properties defined here will override any properties defined in conf/HTTPStreamers.xml for any HTTPStreamer loaded by this applications -->
<Properties>
<Property>
<Name>mpegdashChunkDurationTarget</Name>
<Value>5000</Value>
<Type>Integer</Type>
</Property>
</Properties>
</HTTPStreamer>
in my Application.xml and it affected the segment lengths, it seems this is now a supported feature? However, chunksize is fluctuating quite heavily, some chunks get to be of 8s duration, which is quite a huge difference. What could be causing this?
(Removing this did not remove the first problem, btw.)
Hope we can figure this out…
Ciao