HLS streaming does not play on Apple products

Hi, I’m currently using the Wowza streaming engine to offer my analog camera as a live streaming service.

Because the camera is older and transmits analog data, a separate video server is used to convert it to digital data.

The video server provides the camera acquisition data by converting it to digital data (RTSP) and registers the RTSP in Wowza for use.

To prevent the overload of Wowza servers, we are supporting streaming services to the outside world by building another Wowza server for retransmission.

In other words, our network structure is as follows…

The problem is, the HLS URL we finally provide does not work on certain devices.

Typically, it does not work with Apple products such as iPhone, mac, and iPad. I will provide the example URL below.
The first URL does not play normally, but the second one plays well. Both URLs are streamers serviced in the same structure on the same equipment.

210.91.152.35:40554/live1/definst/ch30.stream/playlist.m3u8
210.91.152.35:40554/live2/definst/ch90.stream/playlist.m3u8
(The underbar is omitted in the instance portion of the underbar due to markdown grammar.)

We have confirmed that both links play normally in Android and Windows OS environments, so we expect it to be a compatibility issue for the Apple product line.

Is it possible that digitally converted data will cause errors because camera equipment uses too outdated protocols or codecs? Or do I need to adjust it in the Wowza application settings?

The following is a result that loads the playlist and chunk files from the Safari developer tool
1.Request a playlist and get the chunklist value
2.Gets the list of chunk files ts
3.The error “an error occurred trying to load the resource” occurs when receiving the first ts file.

If you need information, configuration settings, log files, etc. to solve the problem, I would appreciate it if you could request it.

Also, there is a possibility that the above questions will be written through a translator and delivered differently. Please excuse me.
Thank you.

ps
Creates additional digital image codec information that the video server converts and provides.Please keep that in mind.

Stream 0
codec : H264-MPEG-4 AVC (part 10) (h264)
type : video
640x480

Stream 1
codec : PCM MU-LAW (mlaw)
type : audio
channel : mono
smaple rate : 8000 Hz

Hello @Shemar_Cox,
Looking at the 2 streams it looks like they are encoded differently.
The ch90.stream is encoded with a baseline profile
avc1.66.30: MPEG-4 AVC Baseline Level 3
while the ch30.stream is encoded with a high profile
avc1.100.30: MPEG-4 AVC High Level 3
The above info was gathered by running a curl -i command against the URLs you provided.

Testing the streams as RTSP (native format) using ffprobe the results are even more concerning.
The ch30.stream came back with poorly encoded video stream and no audio stream at all:
rtsp @ 0x7fe597704a00] Could not find codec parameters for *stream 0 (Video: h264, none, 640x480): unspecified pixel format
Consider increasing the value for the ‘analyzeduration’ (0) and ‘probesize’ (5000000) options
Input #0, rtsp, from ‘rtsp://210.91.152.35:40554/live1/ch30.stream’:
Metadata:
title : ch30.stream
Duration: N/A, bitrate: N/A
Stream #0:0: Video: h264, none, 640x480, 90k tbr, 90k tbn

The ch90.stream are not better. It has the same poorly encoded video stream and PCM audio stream which is not supported by HLS:
[rtsp @ 0x7f8592204100] Could not find codec parameters for stream 1 (Video: h264, none, 640x480): unspecified pixel format
Consider increasing the value for the ‘analyzeduration’ (0) and ‘probesize’ (5000000) options
Input #0, rtsp, from ‘rtsp://210.91.152.35:40554/live2/ch90.stream’:
Metadata:
title : ch90.stream
Duration: N/A, bitrate: 64 kb/s
Stream #0:0: Audio: pcm_mulaw, 8000 Hz, mono, s16, 64 kb/s
Stream #0:1: Video: h264, none, 640x480, 90k tbr, 90k tbn

Here is a Wowza support article regarding what HLS supports:
https://www.wowza.com/docs/understanding-protocols-and-formats-supported-by-wowza-streaming-engine#hls
Note that you must have aac audio codec.
I would check and see what the settings are for the conversion server to make sure it is applying consistent encoding parameters.
As an alternative, you can try using the Wowza Transcoder to change the stream encoding to the correct format. The main issue is if the source is really bad, the output from the transcoder may not be good also.

Regards,
Alex

Hello, thank you for your detailed analysis and response.
Let me check the specifications and settings information of the video server product.
Let’s also see if it works well when we convert that data to Wowza Transcoder.
Thank you.