MPEG-TS Stream pushstream localstream not working
I am using a JVC 650 camcorder and which pushes a MPEG-TS stream in on port 6515.
I am attempting to output multi bitrate HLS and MPEG Dash from the media server for a live MPEG-TS stream.
I’ve used an acceptor in the config file…
— Inbound UDP TS
{
ip=”0.0.0.0″,
port=6515,
localstreamname=”amazing”,
protocol=”inboundUdpTs”,
}, The named localstreamname is not created as a stream. Error “resolveMetadata:Stream name amazing not found in any storage” as shown in log extract below 1461373526:6:..\..\..\sources\thelib\src\protocols\rtmp\basertmpappprotocolhandler.cpp:830:BaseRTMPAppProtocolHandler::ProcessInvokeConnect:User agent `LNX 9,0,124,2` on connection (Far: 127.0.0.1:4052; Near: 127.0.0.1:1935) CTCP(420) <-> TCP(177) <-> [IR(178)]
1461373526:0:..\..\..\sources\thelib\src\mediaformats\readers\streammetadataresolver.cpp:302:StreamMetadataResolver::ResolveMetadata:Stream name amazing not found in any storage
1461373526:3:..\..\..\sources\thelib\src\protocols\rtmp\basertmpappprotocolhandler.cpp:1158:BaseRTMPAppProtocolHandler::ProcessInvokePlay:NetStream.play(“amazing”,-2.000,-1.000,true) called on (Far: 127.0.0.1:4052; Near: 127.0.0.1:1935) CTCP(420) <-> TCP(177) <-> [IR(178)]
1461373526:3:..\..\..\sources\thelib\src\application\baseclientapplication.cpp:391:BaseClientApplication::SignalStreamRegistered:Stream ONR(6) with name `amazing` from protocol IR(178) registered to origin application `evostreamms`
1461373526:4:..\..\..\sources\thelib\src\netio\iocp\iohandlermanager.cpp:117:IOHandlerManager::RegisterIOHandler:Handlers count changed: 22->23 IOHT_TCP_CONNECTOR
1461373526:4:..\..\..\sources\thelib\src\netio\iocp\iohandlermanager.cpp:117:IOHandlerManager::RegisterIOHandler:Handlers count changed: 23->24 IOHT_TCP_CARRIER If I use the technique outlined in http://docs.evostream.com/ems_user_guide/protocolsupport pushStream uri=mpegtsudp://0.0.0.0:6515 localStreamName=”SomeLocalStream” looks like it should create a stream with name SomeLocalStream Then it creates a stream but with the same name as the MPEG-TS stream which is a random collection of characters e.g. ts_16_7av3 instead of SomeLocalStream Operating system is Windows 10 64 bit.
{
ip=”0.0.0.0″,
port=6515,
localstreamname=”amazing”,
protocol=”inboundUdpTs”,
}, The named localstreamname is not created as a stream. Error “resolveMetadata:Stream name amazing not found in any storage” as shown in log extract below 1461373526:6:..\..\..\sources\thelib\src\protocols\rtmp\basertmpappprotocolhandler.cpp:830:BaseRTMPAppProtocolHandler::ProcessInvokeConnect:User agent `LNX 9,0,124,2` on connection (Far: 127.0.0.1:4052; Near: 127.0.0.1:1935) CTCP(420) <-> TCP(177) <-> [IR(178)]
1461373526:0:..\..\..\sources\thelib\src\mediaformats\readers\streammetadataresolver.cpp:302:StreamMetadataResolver::ResolveMetadata:Stream name amazing not found in any storage
1461373526:3:..\..\..\sources\thelib\src\protocols\rtmp\basertmpappprotocolhandler.cpp:1158:BaseRTMPAppProtocolHandler::ProcessInvokePlay:NetStream.play(“amazing”,-2.000,-1.000,true) called on (Far: 127.0.0.1:4052; Near: 127.0.0.1:1935) CTCP(420) <-> TCP(177) <-> [IR(178)]
1461373526:3:..\..\..\sources\thelib\src\application\baseclientapplication.cpp:391:BaseClientApplication::SignalStreamRegistered:Stream ONR(6) with name `amazing` from protocol IR(178) registered to origin application `evostreamms`
1461373526:4:..\..\..\sources\thelib\src\netio\iocp\iohandlermanager.cpp:117:IOHandlerManager::RegisterIOHandler:Handlers count changed: 22->23 IOHT_TCP_CONNECTOR
1461373526:4:..\..\..\sources\thelib\src\netio\iocp\iohandlermanager.cpp:117:IOHandlerManager::RegisterIOHandler:Handlers count changed: 23->24 IOHT_TCP_CARRIER If I use the technique outlined in http://docs.evostream.com/ems_user_guide/protocolsupport pushStream uri=mpegtsudp://0.0.0.0:6515 localStreamName=”SomeLocalStream” looks like it should create a stream with name SomeLocalStream Then it creates a stream but with the same name as the MPEG-TS stream which is a random collection of characters e.g. ts_16_7av3 instead of SomeLocalStream Operating system is Windows 10 64 bit.
2 Answers
- Make sure that your camera is pushing MPEG-TS with codecs of H264 and AAC
- After pushing your MPEG-TS to the port you specified in the acceptors, telnet localhost 1112 the type liststreams
- Check the JSON output, if you see an entry with the localstreamname that you specified in config.lua and video codec of VH264 and audio codec of AAAC, you are good
- To create a multiple bitrate DASH and HLS, you need to pass this stream to transcode first e.g. transcode source=<localStreamName> groupName=JVC videoBitrates=1000k,2000k,3000k destinations=stream1,stream2,stream3
- Then to create DASH for this 3 bitrates e.g. createdashstream localstreamnames=stream1,stream2,stream3 targetfolder=c:\temp groupname=dash playlisttype=rolling playlistlength=10 dynamicProfile=1 cleanupdestination=1 chunklength=10 chunkOnIdr=1 staleretentioncount=0
- Then to create HLS for this 3 bitrates e.g. createhlsstream localstreamnames=stream1,stream2,stream3 targetfolder=c:\temp groupname=hls playlisttype=rolling playlistlength=10 cleanupdestination=1 staleretentioncount=0 chunkOnIdr=1
Hi,
For the issue on the local stream name, currently, I would recommend the following:
Start clean by removing the config/pushPullSetup.xml file to remove any existing configuration. Then, disable (delete or comment out) the inboundUdpTs acceptor on the config.lua file. Once the changes are made, restart EMS.
This time, pull a stream using the following command:
pullstream uri=dmpegtsudp://0.0.0.0:6515 localstreamname=amazing
This will instruct EMS to listen to port 6515 for any incoming MPEG-TS UDP traffic and give it a target stream name. Once this command is passed, you will see a log on EMS such as this:
Stream INS(XX) with name `amazing_ts` from protocol PT(YY) registered to origin application `evostreamms`
Start the camcorder streaming and make sure that you have the correct port and and MPEG-TS UDP selection. If the camcorder was able to successfully connect to EMS, you would see the following log:
Stream INTS(XX) with name `amazing` from protocol ITS(YY) registered to origin application `evostreamms`
If you were not able to see this at all, then it means that the camcorder was not able to successfully connect with EMS. Check the port and IP address, as well as firewall settings of the machine where EMS is running.
You can then generate HLS and/or DASH as stated on the previous answer.
Cheers