How can it be ts the GUI of FMLE is able to connect and stream video, but the command line version, running with the same XML file and as the same user, cannot?
These error-looking farts in FMLECmd's output (shared memory, mach ports, command not found) do not occur in the log when the GUI runs.
+ exec '/Applications/Adobe/ [ ... lots more like that ... ]Flash Media Live Encoder 3.2/ CommandLineFMLE/ FMLECmd' /p /Users/ jwz/ src/ icecast/ streamup.xml
Adobe(R) Flash(R) Media Live Encoder Command Line Utility v 3.2.0.9932
Copyright(C) 2009-10 Adobe Systems Incorporated. All rights reserved.
DVFreeThread - CFMachPortCreateWithPort hack = 0xe6bb50, fPowerNotifyPort= 0xe6b720
DVFreeThread - CFMachPortCreateWithPort hack = 0x2c6a310, fPowerNotifyPort= 0x2c63fd0
No such file or directory
Mon Aug 18 2014 13:30:09 : Unable to initialize Shared Memory.
Mon Aug 18 2014 13:30:09 :
Video Settings :-
Device : Blackmagic HD 720p 60 - 10 Bit
Format : H.264
Input Size : 1280x720
Output Size : 640x360;
Bit rate : 350 Kb ps;
Frame Rate : 60.00 fps
Crop : Disabled
Timecode : Disabled
Deinterlace : Disabled
Audio Settings :-
Device : Line In
Format : Mp3 Stereo
Sample Rate : 44100 Hz
Bit rate : 96 Kbps
Volume : 74 %
Stream to Flash Media Server :-
FMS URL : rtmp://live.streamup.com/[ ... ]
Backup URL :
Stream Name : [ ... ]
Mon Aug 18 2014 13:30:09 : Selected video input device: Blackmagic HD 720p 60 - 10 Bit
Mon Aug 18 2014 13:30:09 : Selected audio input device: Line In
DVFreeThread - CFMachPortCreateWithPort hack = 0xa88e20, fPowerNotifyPort= 0xa87e00
DVFreeThread - CFMachPortCreateWithPort hack = 0xd7b1e0, fPowerNotifyPort= 0xd7c280
[ ... more of same ... ]
No such file or directory
Mon Aug 18 2014 13:30:09 : Unable to initialize Shared Memory.
Mon Aug 18 2014 13:30:09 : Primary - Connected to FMS/3,5,7,7009
Mon Aug 18 2014 13:30:09 : Primary - Network Command: onFCPublish
Mon Aug 18 2014 13:30:09 : Primary - Stream[...] Status: Success
Mon Aug 18 2014 13:30:10 : Primary - Stream[...] Status: NetStream.Publish.Start
Mon Aug 18 2014 13:30:10 : Primary - Network Command: onMessageFromServer
Mon Aug 18 2014 13:30:10 : Session Started
Mon Aug 18 2014 13:30:10 : Audio Encoding Started
[ ... ]
Streaming to Primary...
[ ... and then it doesn't encode anything. ]
Also: how do I set the output frame rate? It is changing the resolution just fine, but if I set the frame rate to anything but 60, I get "an unexpected encoding error occurred" every 30 seconds, and it drops and reconnects.
Is there any non-GUI alternative to FMLECmd that runs on MacOS?
Not a direct answer, but have you tried renaming the command to FMLECmd.real and then creating a shell script to dump the arguments and environment before running FMLECmd.real?
FlashMediaLiveEncoder.app does not exec FMLECmd. That would make entirely too much sense.
You have certainly tried to run the FMLECmd as root user, right ?
I know I know less about that topic than you do, but were Mac.apps not able to gain higher priviliges/rights once admitted?
Yes, I have. When run as root, it bombs out with an assertion failure.
It's really an amazingly shitty piece of software, and it hasn't been updated in 5 years.
I have nothing to add, but it took me until the capital E to realize the app probably wasn't named "Fuck My Life".
I've had good luck using ffmpeg to stream RTMP out to Zencoder from a Blackmagic device before. Have you tried doing that?
Since various streaming providers all use different implementations of RTMP (Red5 and the like) there are some incompatibilities between ffmpeg and streaming providers. But its worth a shot.
Or you could just ditch the streaming provider and output HLS and upload to S3 and then stream it out via Cloudfront or some other CDN using native HLS support on Safari/iOS and Chromeless HLS player (flash implementation of HLS) from:
https://github.com/mangui/flashls
Contact me if you want more details and example command lines and options for ffmpeg.
Sure, an ffmpeg recipe would be nice to see.
I don't want to pay for my own video bandwidth because I'm already burning enough money giving away webcasts for free. Increasing the cost even more is not cool.
Well, I just spent 30 minutes figuring out how to get ffmpeg to even tell me what it thinks the name of the video device is, and wasted another 10 failing to figure out how to get it to tell me what it thinks the name of the Mac's line-in audio port is, so... yeah... a recipe would be extremely helpful.
This is about par for course with my attempts to use ffmpeg. It's like they taught a user interface how to hate humans. How is this software 13 years old and people still tolerate this?
I don't know, and I spend every day of my life wondering the same thing. My field thinks "UI" is "I finally got it to work for my situation."
ffmpeg sucks due to all the parts they had to disembowel and then sew back together as optional modules, because of patents of course.
That's awful and all, but it's no excuse for their UI being designed by like, Cenobites.
I now understand why I've downloaded a couple of different software packages that were, AFAICT, just GUI frontends to ffmpeg. (Not Mac, so I can't help with that, just commiserating.)
Here's an example to have ffmpeg stream RTMP to a server when it plays HLS:
./ffmpeg -re -i http://localhost/streams/hls-stream.m3u8 -vcodec copy -r 25 -acodec mp3 -ab 64k -vb 5500k -ar 44100 -v debug -fdebug ts -f flv rtmp://[YOUR HOSTNAME]:1935/live/[YOUR STREAM NAME]
But that's reading from a file, right? I still have no idea how to get the audio from the line-in jack and the video from the Blackmagic box muxed together.
That example is just playing a HLS stream, it could be a mp4 or any other ffmpeg input.
So you want ffmpeg to read two inputs at once.. the SDI cable doesn't have the mixed in audio? I seem to recall you were using a blackmagic device, but it seems to be the case.
Did you build ffmpeg with OpenAL?
https://www.ffmpeg.org/ffmpeg-devices.html#openal
OpenAL is part of CoreAudio on Mac OS X.
Once you get the audio in working, and the BlackMagic working just mux them together.
You can just map the two inputs like this to the output stream:
(you'll have one -i for the OpenAL and the other -i for the BlackMagic, you may want -an on the BM input so you don't take its audio at all)
-map 0:v:0 -map 1:a:0 -f flv rtmp://[YOUR HOSTNAME]:1935/live/[YOUR STREAM NAME]
No. The SDI cable just has video from the cameras, post-switcher. I suppose I could buy another box to inject the audio onto the SDI or HDMI stream, but I don't have one at the moment. We have a Blackmagic UltraStudio Mini Recorder and it just has SDI and HDMI on one end and Thunderbolt on the other.
I don't know how to tell. I did this: "port install ffmpeg +nonfree +librtmp +libdc1394"
FWIW, it's ffmpeg 2.2.3.
Also, in my FMLE config, there are two big hex numbers: the one at the end of the rtmp URL, and one called "stream". This was true with both Justin and Streamup. Where does that second number go?