I've successfully gotten ffmpeg to stream live video from the built-in webcam on my macbook pro to my rtmp server but I cannot figure out how to get it to also send audio from the built-in microphone.
I've tried both the qtkit device as well as the avfoundation. It appears that neither support an audio stream.
Does ffmpeg support audio capture on a mac?
All of the examples I can find only show audio capture working with the DirectShow device.
Turns out it isn't supported at this time. With the help of some of the ffmpeg-devel folks I was able to get it working with a patch. I've applied the patch to a fork available here:
https://github.com/realrunner/FFmpeg
Related
In Ant Media Server after recording stream on Windows using API, the VOD plays fine on Windows. But when playing the same VOD on macOS using Quick Time Player v10.5, the video freezes after some seconds and audio continues.
VODs playback with Quick Time Player is fine for recordings made on macOS.
How can I overcome this and is it an expected behaviour!
TL;DR;
Transcode the video with ffmpeg after recording or add at least one adaptive bitrate on the Ant Media Server side.
This is a known issue in quick time player. This problem also exists for MacOS/iOS and Safari. Let me tell the cause of the problem and offer a solution.
Problem:
The resolution may be changed in WebRTC sessions according to the network conditions so that the resolution of the recording is being changed to lower or higher resolution.
Most of the players and browsers can handle that. On the other hand, Safari and Quick Time Player cannot handle resolution changes and the problem you mention appear.
Solution:
Transcoding the stream into a specific resolution with ffmpeg or using adaptive bitrate on the server side resolves this issue. Typical ffmpeg command is sufficient
ffmpeg -i INPUT.mp4 OUTPUT.mp4
A. Oguz antmedia.io
ffmpeg has all kinds of options in it to record video off of a webcam, transcode video, send video up to streaming servers. Is there a way to loop over a file and make it look like a webcam?
I found this for Linux:
https://gist.github.com/zburgermeiszter/42b651a11f17578d9787
I've search around a lot to try to find something for Windows, but have not yet found anything.
No, that's not part of FFmpeg so you'll need to create this "virtual video device" yourself. See e.g. How to create virtual webcam in Windows 10?.
I need to live broadcast multiple RTSP streams out of the audio mixing software StudioOne. For this I am using Jack Audio Connection Kit as the connector. I've already tried using IceCast with Darkice but the latency went up to 6+ seconds which won't work for the project that I'm working on. That's why I'm using the Wowza media server which does RTSP streaming instead of HTTP.
That's where I'm stuck as I need some way of getting the streams from Jack Audio to Wowza on a MAC OS machine. I've tried using FFMpeg but FFMpeg doesn't have the feature to get input from Jack Audio on it's OSX version. I can try to port my whole setup onto an Ubuntu but the mixing software StudioOne isn't available on Ubuntu. I can try using Wine to port StudioOne to Linux but I'm not sure it'll be a good idea for real time mixer to be used as a port, especially when latency is involved.
Is there some other way I can get input from Jack Audio to Wowza Media Server on my MAC?
JACK on OS X is now in FFmpeg as of this commit (67f8a0be545).
Once you have JACK installed, you can compile FFmpeg from source and support should be automatically compiled into FFmpeg.
Grabbing the system audio using 'Stereo Mix' is easy, but most modern drivers don't support that anymore. Steam local streaming somehow managed to do it without, i can clearly hear other apps audio output while streaming an arbitrary game.
How does steam do that? Did they silently install a driver? Is there any other way of grabbing system audio?
From Windows 7 and up that is.
From Vista and later you can use WASAPI. It allows to use loopback for any output device, just use an output as an input with the AUDCLNT_STREAMFLAGS_LOOPBACK flag for this function: http://msdn.microsoft.com/en-us/library/windows/desktop/dd370875(v=vs.85).aspx
I'm trying to stream my webcam with FFmpeg to my Red5 server using RTMP. I've done this successfully using FLV format with the following line:
ffmpeg -f video4linux2 -i /dev/video0 -f flv rtmp://localhost/live/livestream
I'm new to FFmpeg and live streaming, and I've tried to stream using H.264/MPEG-4. But my knowledge is a bit limited with the FFmpeg options (which I did find here: http://man.cx/ffmpeg%281%29).
So, my questions would be:
How can I use H.264/MPEG-4 to stream to my Red5 server?
What are the options to stream audio as well?
And one final issue is:
I'm having a delay of about 5 seconds when I play the content with JWPlayer in Mozilla Firefox (on Ubuntu). Can you please help me out to solve this problem? Any suggestions why this might be?
Many thanks
There is no need to use ffmpeg for streaming H.264/MPEG-4 files because red5 has build in support for this. Using ffmpeg will only put an unnecessary load on your CPU usage. Red5 will recognize the file type automatically, you only have to specify the mp4 file in your JWPlayer.
About the delay, as far as I know JWPlayer has a buffer of 3 seconds by default. You can try to lower this (property bufferlength or something like that). And maybe JWPlayer has a "live" property as well to stream with minimal delay, but I am not sure about that. Removing ffmpeg will probably speed up the process also.