Hi, I am using a specific device with specific gsreamer plugin, which enables live camera video stream with hardware accelerated h264 encoding, and I am restreaming that stream using Wowza. (It works the same way as IP camreras, only I am controlling all the software).
Everything works fine using RTMP, RTSP, but when viewing re-stream in iOS, then only audio can be heard, but video is empty/black screen. Debug from iOS developer showed these error lines:
, which gives me nothing, because information about this can't be found online. The HLS by itself seems to be fine, because it can be played using VLC.
-iPhone-4S-iOS7 mediaserverd <Error>: vxdDec - Frame# 568, DecodeFrame failed with error: 6
The video on the device is encoded with h264, profile: baseline, 640x480, variable bitrate, framrate:30, gopsize: 30. (Tried different resolutions, tried constant bitrate, tried different gopsizes - result is the same).
A strange solution:
Because I knew there is something iOS specific (resolution, keyframe, bitrate) in the h264 that breaks its playback I thought of using Transcoder plugin to re-encode the h264.
And here comes the intereseting part: re-streaming works if I use Transcoder addon without any stream modifications - I use Transrate template with video and audio settings as PASSTHROUGH. So as I understand it shouldn't change anything in codecs, but why is the end result working in this situation? What's the magic the Transcoder is doing, so that iOS now works?