RTMP/RTMPT heacaches or just HTTP?
I'm having what I think is a bizarre problem. I haven't been able to find the answer, so I might just not be asking the eight questions.
I am running Flash Media Server 4.5.2. Apache is listening to port 80, FMS is listening to the default ports. I am using the OSMF as a player.
I have some clients that are behind a firewall that only allows port 80. My understanding is that a Flash client will attempt to connect to RTMP (port 1935) if it fails it will then try RTMPT, which tunnels (via Apache's proxy engine) to port 1935. I believe the original 4.5 config had it reversed, with FMS listening to 80 and forwarding non RTMPT on to Apache. I have some web apps running anyhow that need Apache to be listening in any event, so I need Apache to be listening and not FMS.
To try and simulate my clients problems, I setup my home router to block everything except for port 80 and I have been doing a variety of testing and configuring. I have it almost working but it's still not working correctly.
For some reason, IE works properly, even with all but port 80 blocked. Firefox and Chrome do not work. I don't know about Sufarie and the the iOS hls streaming is working fine.. I assume Flash for IE and Chrome and Firefox are all the same, so this one really has me stumped.
However, as a stopgap for my clients I changed the manifests on my videos to use the HTTP hds-vod module rather than the RMTP protocol and this works on everything.
My inclination is the RTMP method is better, but maybe I'm wrong. The easy fix is just to make all the manifests work with hds-vod and be done with it, but I'd really like to get things working properly. Any kind of thoughts or information would be helpful.
This is my usual manifest. This works fine if there is no firewall. If there is a firewall is still works with IE:
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
<id>Dynamic Streaming</id>
<baseURL>rtmp://xxxx.com/vod/</baseURL>
<mimeType>video/mp4</mimeType>
<streamType>recorded</streamType>
<media url="mp4:sports/20121110-vball-aawards/20121110-vball-aawards.300.f4v" bitrate="300"/>
<media url="mp4:sports/20121110-vball-aawards/20121110-vball-aawards.600.f4v" bitrate="600"/>
<media url="mp4:sports/20121110-vball-aawards/20121110-vball-aawards.900.f4v" bitrate="900"/>
<media url="mp4:sports/20121110-vball-aawards/20121110-vball-aawards.1200.f4v" bitrate="1200"/>
<media url="mp4:sports/20121110-vball-aawards/20121110-vball-aawards.1500.f4v" bitrate="1500"/>
</manifest>
This is the hds-vod version that works on everything:
<manifest xmlns="http://ns.adobe.com/f4m/2.0">
<media href="http://xxxx.com/hds-vod/sports/20121110-vball-aawards/20121110-vball-aawards.300.f4v.f4m" bitrate="300"/>
<media href="http://xxxx.com/hds-vod/sports/20121110-vball-aawards/20121110-vball-aawards.600.f4v.f4m" bitrate="600"/>
<media href="http://xxxx.com/hds-vod/sports/20121110-vball-aawards/20121110-vball-aawards.900.f4v.f4m" bitrate="900"/>
<media href="http://xxxx.com/hds-vod/sports/20121110-vball-aawards/20121110-vball-aawards.1200.f4v.f4m" bitrate="1200"/>
<media href="http://xxxx.com/hds-vod/sports/20121110-vball-aawards/20121110-vball-aawards.1500.f4v.f4m" bitrate="1500"/>
</manifest>
This is the protion of my Apache config that should Proxy RTMP data:
# Proxy rtmpt to FMS ProxyRequests On
ProxyPass /open http://localhost:1935/open
ProxyPassReverse /open http://localhost:1935/open
ProxyPass /send http://localhost:1935/send
ProxyPassReverse /send http://localhost:1935/send
ProxyPass /idle http://localhost:1935/idle
ProxyPassReverse /idle http://localhost:1935/idle
ProxyPass /close http://localhost:1935/close
ProxyPassReverse /close http://localhost:1935/close
ProxyPass /fcs http://localhost:1935/fcs
ProxyPassReverse /fcs http://localhost:1935/fcs
ProxyPass /fms http://localhost:1935/fms
ProxyPassReverse /fms http://localhost:1935/fms
<Proxy *:80>
Order Allow,Deny
Allow from all
</Proxy>
