Streaming FLV to IOS Supported Devices

Hello,

I currently have a library of FLV files that I want to stream out to platforms that support flash as well as platforms that only support IOS. Given the insane number of files, I don’t want to have to re-encode all my flv files to mp4 prior to streaming. Is there anyway to do on-the-fly streaming of FLV to IOS supported formats using Wowza? Documentation on this is not really extensive as far as I can see, and I do want to avoid re-converting the files prior to streaming. Any help would be very much appreciated.

Thanks!

Hi,

The Transcoder AddOn does not support on-the-fly transcoding of VOD media files at this time. You will need to implement a 3rd party solution. Take a look at this article on How to encode video on demand content.

-Tim

Hi,

FLV files have a few different video & audio formats,(VP6, Spark, H.264 video & Nelly Moser, Speex, mp3, aac audio). The transcoder cannot handle VP6, Spark or Nelly Moser codecs due to licensing restrictions. This will most likely be the case if the files were created more than 2 - 3 years ago or are recordings from a Flash application.

If the flv is compatible, then it is possible to create a Server Side live stream using custom code and then feed the flv file into that. It can then be transcoded to a h.264 / aac stream that can be played back. The stream would be a live stream so you would not have any seek functionality.

It would be best in the long run to convert your video library to mp4 using some external tool as these can be played back on all platforms with no problems.

Roger.

You have two problems: First, you evidently did not add “cupertinostreamingpacketizer” to the /conf/videochat/Application.xml /Streams /LivestreamPacketizers.

<LiveStreamPacketizers>cupertinostreamingpacketizer</LiveStreamPacketizers>

And the default video and audio codecs using Flash are not supported. With recent Flash versions you can use H.264 video and Speex audio along with the Wowza Transcoder to publish in Flash and playback HLS streams in iOS devices. It is not really suitable to chat, but it will work. Take a look at this article.

Richard

Hi,

Unfortunately, that is correct. FLV1 is another name for Sorensen Spark codec.

Scripting ffmpeg and letting it run might be your best option. If you have any data on which files are accessed most recently, then that may help to get the popular ones converted first.

Roger.

Hi,

Yes, it does also apply to live streams. The article also goes on to list supported decoding formats.

Video (decoding)

H.264

MPEG-2

MPEG-4 Part 2

Audio (decoding)

AAC

G.711 (µ-law and A-law)

MPEG-1 Layer 1/2

MPEG-3

Speex

If using Flash 11, it is possible to send a stream using H.264 video and Speex audio. The audio will need transcoding but this is possible.

How to convert Flash Player 11 output from H.264 + Speex audio to H.264 + AAC audio using Wowza Transcoder AddOn

Roger.

Thanks Tim, Roger.

The FLV library is huge, so re-encoding/conversion to mp4 would be a massive undertaking. Additionally, the video codec in the FLV is FLV1 and the audio codec is Nelly Moser. There is absolutely no way to do this in Wowza without using ffmpeg to convert to mp4 on the page that Tim mentioned? (https://www.wowza.com/docs/how-to-encode-video-on-demand-content)

Thank you Roger.

Now, does this same limitation apply to live streams via FLV? For instance, I have an FLV livestream currently set up (Video: FLV1, Audio:NellyMoser). Can I use Wowza’s transcoder to convert that to H264 on the fly for streaming to multiple devices (Both Flash AND IOS) ?

https://www.wowza.com/docs/wowza-transcoder

The page above just mentions “Ingests a non-H.264 video” without specifying if Sorensen Spark will be supported. Thanks!

Thanks Roger.

  1. I finally got a test set to livestream my webcam. I used the Flash RTMP Player (VideoChat) to publish a stream rtmp://localhost/videochat

  2. I’m using a Mac, so I opened up a terminal to run the ffmpeg command to transcode the FLV/nellymoser to H264/AAC per one of your posts earlier: ffmpeg -i rtmp://localhost/videochat/testing -strict experimental -acodec aac -ar 22050 -vcodec libx264 -threads 64 -f flv rtmp://localhost/videochat/testing2

  3. I am able to play the RTMP “testing2” stream in the example player (FLASH RTMP PLAYER)

  4. However, Wowza does not play this stream when I open up the IOS player example in Safari. The URL I used is: http://localhost:1935/videochat/testing2/playlist.m3u8 . Effectively, nothing outside of RTMP gets to play the file. The error seen in the logs is: WARN server comment - MediaReaderH264.open[videochat/definst]: Not found: /Library/WowzaMediaServer/content/testing2. The error seen in the player window is: “The video could not be loaded, either because the server or network failed or because the format is not supported”

I’m guessing this is because the players are expecting a stream to be available in the content folder. How do I get Wowza to use the stream I created using FFMPEG instead of looking at the content folder?

Thanks for all the help!