Issues with Playback of HLS in VLC

Background… (Using Wowza Streaming Engine 4.1 Updated - Trial License)

  1. One UDP Multicast Stream coming from: udp://224.12.16.40:5050 - Stream Coming from Private UDP Encoder Link. Stream in HD (1080i, H.264, AAC)

  2. Wowza on connected internal server with public IP. Server Specs: 2 CPU, 16 Core, 2.6 Ghz., 16GB RAM

  3. Wowza set to default transcoder profiles 720p, 360p, 240p, 160p - Encoded to Defaults (Created template - StarSportsHD.stream, Match Incoming Streams to Template)

  4. Created a .stream file from the above UDP address. Called it StarSportsHD.stream

  5. Connected the Stream and was able to observe the above mentioned encodes in the ‘Incoming Streams’ section.

  6. Created a SMIL file (StarSportsHD.smil) and added the above encodes.

  7. Connected the SMIL file.

  8. Checked the Incoming Streams again and found an extra StarSportsHD_360p stream out of nowhere. Status - “Waiting for Stream”

  9. Opened VLC player on remote computer and played back the SMIL URL Http://xx.xx.xx.xx:1935/MyApp/smil:StarSportsHD.smil/playlist.m3u8

  10. Playback starts but keeps stuttering. I get the following errors on VLC’s Log…

ts warning: discontinuity received 0x2 instead of 0x4 (pid=256)
httplive warning: playback in danger of stalling
ts warning: discontinuity received 0x2 instead of 0xa (pid=256)
httplive error: EXT-X-MEDIA-SEQUENCE gap in playlist (new=45, old=44)
httplive error: EXT-X-MEDIA-SEQUENCE gap in playlist (new=45, old=44)
httplive error: EXT-X-MEDIA-SEQUENCE gap in playlist (new=45, old=44)
ts warning: discontinuity received 0x2 instead of 0x6 (pid=256)
ts warning: discontinuity received 0x2 instead of 0xe (pid=256)
httplive warning: playback in danger of stalling
ts warning: discontinuity received 0x2 instead of 0xa (pid=256)
httplive warning: playback in danger of stalling
httplive error: EXT-X-MEDIA-SEQUENCE gap in playlist (new=48, old=47)
httplive error: EXT-X-MEDIA-SEQUENCE gap in playlist (new=49, old=47)
httplive error: EXT-X-MEDIA-SEQUENCE gap in playlist (new=49, old=47)
httplive error: gap in sequence numbers found: new=49 expected 48
httplive error: gap in sequence numbers found: new=49 expected 48
ts warning: discontinuity received 0x2 instead of 0x6 (pid=256)
main warning: picture is too late to be displayed (missing 8706 ms)
main warning: picture is too late to be displayed (missing 8666 ms)
main warning: picture is too late to be displayed (missing 8703 ms)
main warning: picture is too late to be displayed (missing 8663 ms)
main error: Failed to resize display 

I do not know what is happening here. I have followed the book as far as I know. Can you please guide me on how to fix this? Also, why are there rogue 360p streams being created when I connect my SMIL file to application? Please advise.

PS: I tried playing back the stream on my mobile phone on a conventional 3G network giving me a DL speed of 4.5 mbps. The stream starts directly in HD and then plays for about 5 seconds and freezes. If left alone, I get the “Cannot Playback Stream” error on my MX Player in Android (Jellybean). When I playback the stream on my 8 mbps DSL connection, everything works smoothly. Now I am beginning to get seriously pissed off :frowning:

PPS: I did a quick speedtest.net on the server and it is clocking at about 150 mbps DOWN and 25 mbps UP. So speed issues are thereby ruled out. Wowza CPU load is maxing at about 60%. Performance does not seem to be an issue either. Same goes for Wowza Memory and Heap…all seem to be well under control.

Hello there and welcome to the Wowza support forum.

I think the best course of action here would e for you to open a support ticket.

To do so please zip up the following folders and send them to support@wowza.com. Also please include a link to this thread as a reference.

[install-dir]/conf

[install-dir]/logs

[install-dir]/transcoder

[install-dir]/manager/logs

Thank you.

Salvadore

Hi,

There is also a section called “Adaptive bitrate streaming with Stream Name Groups” in the Transcoder tutorial.

If you do have problems using this method, please open a ticket as suggested by Salvadore.

When providing the requested directories, please make sure you provide logs which show Wowza server starting.

If you are not sure how to get this information please see the following tutorial.

How to create a compressed zip file in Windows, OS X, and Linux

In the ticket ensure that you mention the following:

  • If you have a live stream please outline the type of encoder in use along with the encoding settings for the stream.

  • If you are using a .stream file to start re-streaming please provide this.

  • If you are using multiple bitrates (ABR) then please provide the SMIL file associated with your configuration.

Please also include a link to this thread for reference.

Regards,

Jason

Hi,

Are you seeing any messages in the Wowza Streaming Engine access log when searching for the work “SKIP”?

As you’re using a server which only has 2 CPU cores and the transcoder is a high CPU intensive process it may not be creating the streams as expected.

The transcoder will skip frames and to a point that it’s keyframes only if it does not have the required hardware resources to perform the task it’s configured to do.

The transcoder skips frames to reduce the CPU requirements which prevent the server from crashing.

Without a ticket to search through the logs it’s hard to troubleshoot the issue. Perhaps try only enabling the lowest quality encodes to begin with so see if this helps.

Regards,

Jason

Hello,

Its livestreaming from a .stream file. Better try creating streamname groups for transcoder profile and play the streamname group with the ngrp prefix instead of playing smil file.

Check “playback with streamname groups” in this pdf link : https://www.wowza.com/resources/WowzaTranscoderAddOn_UsersGuide.pdf

Thank you,

Allan

Thanks everyone for your comments…

  1. Regarding Creating Stream Name Groups…I tried doing that and copy-pasted the HLS url in VLC. Nothing plays the logs I get are these…

main debug: adding item `http://xx.xx.xx.xx:1935/flo2golive/ngrp:StarSportsHD.stream_all/playlist.m3u8’ ( http://xx.xx.xx.xx:1935/flo2golive/ngrp:StarSportsHD.stream_all/playlist.m3u8 )

qt4 debug: Adding a new MRL to recent ones: http://xx.xx.xx.xx:1935/flo2golive/ngrp:StarSportsHD.stream_all/playlist.m3u8

main debug: processing request item: http://xx.xx.xx.xx:1935/flo2golive/ngrp:StarSportsHD.stream_all/playlist.m3u8, node: null, skip: 0

main debug: rebuilding array of current - root Playlist

main debug: rebuild done - 1 items, index 0

main debug: starting playback of the new playlist item

main debug: resyncing on http://xx.xx.xx.xx:1935/flo2golive/ngrp:StarSportsHD.stream_all/playlist.m3u8

main debug: http://xx.xx.xx.xx:1935/flo2golive/ngrp:StarSportsHD.stream_all/playlist.m3u8 is at 0

main debug: creating new input thread

main debug: Creating an input for ‘http://xx.xx.xx.xx:1935/flo2golive/ngrp:StarSportsHD.stream_all/playlist.m3u8

main debug: using timeshift granularity of 50 MiB, in path ‘C:\Users\flo2go\AppData\Local\Temp’

main debug: [http://xx.xx.xx.xx:1935/flo2golive/ngrp:StarSportsHD.stream_all/playlist.m3u8](http://xx.xx.xx.xx:1935/flo2golive/ngrp:StarSportsHD.stream_all/playlist.m3u8)' gives access http’ demux ' path xx.xx.xx.xx:1935/flo2golive/ngrp:StarSportsHD.stream_all/playlist.m3u8’

main debug: creating demux: access=‘http’ demux=’’ location=‘xx.xx.xx.xx:1935/flo2golive/ngrp:StarSportsHD.stream_all/playlist.m3u8’ file=’\xx.xx.xx.xx:1935\flo2golive\ngrp:StarSportsHD.stream_all\playlist.m3u8’

main debug: looking for access_demux module matching “http”: 12 candidates

main debug: no access_demux modules matched

main debug: creating access ‘http’ location=‘xx.xx.xx.xx:1935/flo2golive/ngrp:StarSportsHD.stream_all/playlist.m3u8’, path=’\xx.xx.xx.xx:1935\flo2golive\ngrp:StarSportsHD.stream_all\playlist.m3u8’

main debug: looking for access module matching “http”: 20 candidates

access_http debug: querying proxy for http://xx.xx.xx.xx:1935/flo2golive/ngrp:StarSportsHD.stream_all/playlist.m3u8

access_http debug: no proxy

access_http debug: http: server=‘xx.xx.xx.xx’ port=1935 file=’/flo2golive/ngrp:StarSportsHD.stream_all/playlist.m3u8’

main debug: net: connecting to xx.xx.xx.xx port 1935

main debug: no fetch required for (null) (art currently (null))

qt4 debug: IM: Setting an input

main debug: connection succeeded (socket = 1992)

access_http debug: protocol ‘HTTP’ answer code 200

access_http debug: Server: WowzaStreamingEngine/4.1.0

access_http debug: Content-Type: application/vnd.apple.mpegurl

access_http debug: this frame size=25

main debug: using access module “access_http”

main debug: Using stream method for AStream*

main debug: starting pre-buffering

main debug: received first data after 233 ms

main debug: looking for stream_filter module matching “any”: 6 candidates

httplive info: HTTP Live Streaming (xx.xx.xx.xx:1935/flo2golive/ngrp:StarSportsHD.stream_all/playlist.m3u8)

httplive debug: parse_M3U8 #EXTM3U #EXT-X-VERSION:3

httplive debug: Live Playlist HLS protocol version: 3

httplive debug: Choose segment 0/0 (sequence=0)

httplive error: fetching first segment failed.

main debug: no stream_filter modules matched

main debug: looking for stream_filter module matching “record”: 6 candidates

main debug: using stream_filter module “record”

main debug: creating demux: access=‘http’ demux=’’ location=‘xx.xx.xx.xx:1935/flo2golive/ngrp:StarSportsHD.stream_all/playlist.m3u8’ file=’\xx.xx.xx.xx:1935\flo2golive\ngrp:StarSportsHD.stream_all\playlist.m3u8’

main debug: looking for demux module matching “m3u8”: 63 candidates

playlist debug: found valid M3U playlist