If you search the mailing list, you will see that RTMPT doesn't support VOD for now. And to be perfectly honest with you, I don't think it will ever do.
The main reason is that RTMP becomes absolutely useless inside this particular protocol stack (TCP-HTTP-RTMP) when you deal with files.
If you can do HTTP on files, why bother inserting RTMP? Just download the file and play it, right? RTMPT makes perfect sense for live streaming when parties are behind firewalls.
Cheers,
Andrei
> You received this message because you are subscribed to "C++ RTMP Server" mailing list.
> To post to this group, send email to c-rtmp...@googlegroups.com
> To unsubscribe from this group, send email to
> c-rtmp-serve...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/c-rtmp-server?hl=en
Yes, that makes perfect sense. RTMPS is supported by crtmpserver. There is one major thing you should be aware of: it won't work as expected if you don't have valid certificate.
1. Invalid certificate: RTMPS == TCP-SSL-HTTP-RTMP
2. Valid certificate: RTMPS == TCP-SSL-RTMP
You MUST make use of 2nd scenario. For this, you need valid certificate signed by a signing authority and you MUST connect to the CN inside the certificate. Example: certificate issued for www.example.com (CN)
If you connect using: rtmps://10.11.12.13/live it won't work even if www.example.com is 10.11.12.13. It doesn't even work with rtmps://example.com/live. It MUST be the _exact_ CN: rtmps://www.example.com/live
Cheers,
Andrei
>
> Daniel
On Tuesday, 4 October 2011 22:24:51 UTC+2, Eugen-Andrei Gavriloaie wrote:
1. Invalid certificate: RTMPS == TCP-SSL-HTTP-RTMP
2. Valid certificate: RTMPS == TCP-SSL-RTMP
> On Tuesday, 4 October 2011 22:24:51 UTC+2, Eugen-Andrei Gavriloaie wrote:
>
> 1. Invalid certificate: RTMPS == TCP-SSL-HTTP-RTMP
> 2. Valid certificate: RTMPS == TCP-SSL-RTMP
>
> I would like to disallow the first scenario. I overrode RegisterProtocol in the application's rtmpappprotocolhander.cpp:
>
> void RTMPAppProtocolHandler::RegisterProtocol(BaseProtocol *pProtocol) {
> BaseProtocol *p = pProtocol->GetFarEndpoint();
> while (p != NULL) {
> if (p->GetType() == PT_INBOUND_HTTP) {
> FATAL("HTTP not allowed");
> return;
> }
> p = p->GetNearProtocol();
> }
> // All is well, register protocol.
> BaseRTMPAppProtocolHandler::RegisterProtocol(pProtocol);
> }
>
> i.e. just don't register protocol if HTTP is somewhere in the stack. Good idea?
Bad idea. Basically, the flash player expects HTTP traffic while the code delivers RTMP traffic
>
> Behavior: Incrrect invoke id in basertmpapprotocolhander.cpp:617, then the client tries to reconnect: Unable to bind protocol in inboundhttp4rtmp.cpp, then the client tries to reconnect again: Invalid command: close in inboundhttp4rtmp.cpp.
>
> Daniel
>
> i.e. just don't register protocol if HTTP is somewhere in the stack. Good idea?
Bad idea. Basically, the flash player expects HTTP traffic while the code delivers RTMP traffic