Just a question on how Wowza handles this. I have a flash player which allows publishing of webcam (in Sorenson Spark) to the Wowza server. This in turn can be requested using rtsp://. When I look at the SDP file the stream is being split into two rtp streams.
Audio: SPEEX
Video: H263-1998
Two questions:
-
Is there a way within the Wowza API to adjust the SDP files that are generated so that I can correctly identify the video stream as Spark instead of H.263-1998?
-
What is the encapsulation of the spark video in the RTP stream? I have traced it with wireshark it does not appear to be either H.263 over RTP or H.263-1998 over RTP format. I am trying to utilize the ffmpeg FLV1 decoder on the stream but it is producing mostly garbage.
Any help would be greatly appreciated. Thanks,
Ehren
Spark video and Speex audio only work in Flash applications.
You can use Flash 11 to publish h.264 and Speex audio to Wowza transcoder, which will output h.264 and AAC audio which can be played in all client types
https://www.wowza.com/docs/how-to-convert-flash-player-11-output-from-h-264-speex-audio-to-h-264-aac-audio-using-wowza-transcoder
Richard
Wowza 3 Transcoder does not support decode of Spark video. ffmpeg can work, but the results were marginal, to be kind, in my tests.
ffmpeg -i rtmp://localhost:1935/videochat/testing -re -strict experimental -acodec aac -ar 22050 -vcodec libx264 -vpre default -vpre ipod320 -threads 64 -f flv rtmp://localhost/live/testing_mp4
The only good option right now is Flash 11 h.264/Speex > Wowza Transcoder > h.264/AAC. It’s easy enough to require a minimum version Flash plugin for your application.
Richard
Yep, the H.264 streams work fine. However, we cannot guarantee that our clients will have access to flash 11.
I understand that typically Spark would only be supported under the flash platform. However, since ffmpeg does have support for spark decoding I was hoping that someone would know the format of the streams that wowza sends out. Because it is sending out the video…just not sure how it is packetizing the stream in RTP.
I understand that we can limit the flash version code easily enough, however the application is designed to be usable for a large cross section where people may not have access rights to the machine for upgrading flash to the newest version. 1-2 years down the line it will not matter but for the near term there will still be a large chunk of people using < flash 11.
ffplay (based on today’s trunk) actually does work quite well for receiving the stream so maybe I will try to incorporate the rtmp stack into our application instead of trying to figure our the packetizing of the RTP stream.
Thank you for your help.