Here is my setup:
Professional IRD
Ubuntu 12.04
WOWZA 3.12
64-bit
I’ve tried so many ways, but I cant seem to get the following work properly.
I take a transport stream output via IP from the IRD. VLC, selects a program and then encodes it, and then passes that to wowza via UDP. The stream works, RTSP works well, HLS seems has problems. I use the same settings in wowza, nothing changed, but using FME, the HLS works PERFECTLY. I’ve even tried to send using FLV -> rtmp to wowza, and that yields the same style of result, ie. problematic. My only solution was to build my own segmenter using some instructions that I found online. That works amazing. BUT, this method I have to use vlc to select the programs, pass each of those to ffmpeg, and then UDP to wowza from ffmpeg. I dont know why (trust me I searched high and low) but ffmpeg uses 80+% more cpu to encode, the threads option in ffmpeg do nothing else but make ffmpeg crash if I set it to anything else than 0. The only thing that I can figure is that wowza is not liking the UDP TS that I’m sending to it. Here is a couple examples of encoding methods that I’m using. Any help here to get me going straight would save my life. I’m so past this, that im willing even to pay someone to get this working right. I’ve spent almost 8 months trying to figure out why I can’t make this work. FYI, I used the exact command for ffmpeg that is in the tutorials from the site, and that didnt make a difference.
This is the command for the input stream that breaks up the programs into multiple streams.
/usr/local/bin/vlc udp://@239.0.0.4:4444 --ts-es-id-pid --play-and-exit --sout-keep -I dummy -vvv --sout #duplicate{dst=“std{access=udp,mux=ts,dst=127.0.0.1:27526}”,select=“program=7001”,dst=“std{access=udp,mux=ts,dst=127.0.0.1:21747}”,select=“program=7002”,dst=“std{access=udp,mux=ts,dst=127.0.0.1:22815}”,select=“program=7003”,dst=“std{access=udp,mux=ts,dst=127.0.0.1:28805}”,select=“program=7021”,dst=“std{access=udp,mux=ts,dst=127.0.0.1:20938}”,select=“program=7022”} --programs=7001,7002,7003,7021,7022 --file-caching=15000 --network-caching=15000 --sout-mux-caching=15000
NONE OF THE FOLLOWING BELOW WORK!
VLC method
/usr/local/bin/vlc udp://@127.0.0.1:10030 --play-and-exit --sout-keep -I dummy -vvv --sout ‘#transcode{threads=2,vb=1000,vcodec=x264,venc=x264{level=4,profile=main,hrd=cbr,qcomp=0,keyint=12,bframes=0,vbv-maxrate=1000,vbv-bufsize=10000,partitions=fast,8x8dct 1,me=dia,ref=1,subme=1,trellis=0,mbtree=0},acodec=mp4a,ab=128,samplerate=44100,audio-sync}:std{access=udp,mux=ts,dst=192.168.20.100:10030}}’ --file-caching=15000 --udp-caching=15000 --sout-mux-caching=15000
FFMPEG UDP
ffmpeg -i udp://@127.0.0.1:10030 -vcodec libx264 -vpre default -vpre baseline -g 60 -vb 150000 -strict experimental -acodec aac -ab 96000 -ar 48000 -ac 2 -vbsf h264_mp4toannexb -f mpegts udp://192.168.20.100:20100?pkt_size=1316
FFMPEG RTMP
ffmpeg -i “udp://127.0.0.1:10101” -re -vcodec libx264 -g 60 -vb 1000k -strict experimental -acodec aac -ab 128k -ar 44100 -ac 2 -f flv rtmp://192.168.20.100/live/test3?pkt_size=1316 -vprofile baseline -crf 11 -level 30