I think maybe my question wasn’t very clear… The problem isn’t with the ingestion of the UDP traffic (that works fine), it’s serving that stream through RTSP/RTMP.
While serving it through RTMP seems to work well, serving it with RTSP is the problem because of the fact that the STBs are not very compliant to the RTSP standard and don’t’ create the requests in the proper form.
So, for explanation purposes let’s say that we have a unicast stream coming in UDP (H264 video+AAC audio), encapsulated on a MPEG2 transport stream.
I do a pullstream as such:
pullstream uri=dmpegtsudp://0.0.0.0:19000 localstreamname=test_udp_stream
If I use VLC and access the stream as “rtmp://ip:1935/live/test_udp_stream”, this works fine. In VLC, RTSP “rtsp://ip:5544/test_udp_stream” also works fine.
Then, if I use the STB to fetch this RTSP stream, it fails.
On two different STBs, I get different issues:
On STB 1, it sends the RTSP OPTIONS and RTSP DESCRIBE command (just like VLC) and it receives the correct responses. But then on the RTSP SETUP command, the command sent is:
o SETUP rtsp://192.168.174.156:5544/test_udp_stream RTSP/1.0
o User-Agent: Kreatel_IP-STB
o Transport: RTP/AVP/UDP;unicast;destination=192.168.174.181;client_port=28778-28779
o x-mayNotify:
o CSeq: 3
With this request, the EMS fails with the warning that it didn’t receive the TrackID. The request with the (working) VLC:
o SETUP rtsp://192.168.174.156:5544/test_udp_stream/trackID=1 RTSP/1.0
o User-Agent: LibVLC/2.1.5 (LIVE555 Streaming Media v2014.05.27)
o Transport: RTP/AVP/UDP;unicast;destination=192.168.174.181;client_port=28778-28779
o CSeq: 3
On STB2, it doesn’t do the RTSP OPTIONS and RTSP DESCRIBE command, goes straight to RTSP SETUP, so the error is different (basically it doesn’t know if the created stream is ingoing or outgoing, since that flag is set on the RTSP OPTIONS command, from what I gathered looking at the crtmpdserver code).
So, is there something we can do about this? Or do I have to build a RTSP server that proxies the STBs?
Additionally, after this support request, I found another (more serious) issue: I have a Flash movie on the PC publishing a RTMP stream (a webcam widget, let’s call it). This RTMP is H264 video with Speex audio (Flash doesn’t support AAC). This means that the audio is trimmed at the source, which means I can’t even try to transcode it to AAC in the Evostream server… Is there a solution for this? Some way to “pre-transcode”? I looked at the transcode API, but it doesn’t seem to be able to do what I require, since the audio is already gone when the transcode module acts… Also thought about using evo-avconv, but that one doesn’t seem to be able to work with streams published by Flash (only by pulling, which doesn’t suit my needs)… Any ideas on this?
If you could give me a hand with this, I’d really appreciate… I’m on a tight deadline, since I’ll have to decide if we abandon the EMS on this project to develop our own solution or search around for another one, and we’ll need time (that we have little of) for that…
admin
This information box about the author only appears if the author has biographical information. Otherwise there is not author box shown. Follow YOOtheme on Twitter or read the blog.