Macos 使用ffmpeg使用isight录制视频
因此,要在linux上使用ffmpeg录制网络摄像头视频,您可以使用以下内容Macos 使用ffmpeg使用isight录制视频,macos,video,ffmpeg,ffserver,isight,Macos,Video,Ffmpeg,Ffserver,Isight,因此,要在linux上使用ffmpeg录制网络摄像头视频,您可以使用以下内容 ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 out.avi 但在mac上这不起作用,所以我想知道如何在mac上用isight和ffmpeg录制 我已经研究过了,很多人说这是不可能的,但这些帖子大部分都很老了,所以我想知道从那时起它是否发生了变化。在Linux上,“ffmpeg”使用了“捕获API”,在Windows上有一个名为“video4windows”的版本。
ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 out.avi
但在mac上这不起作用,所以我想知道如何在mac上用isight和ffmpeg录制
我已经研究过了,很多人说这是不可能的,但这些帖子大部分都很老了,所以我想知道从那时起它是否发生了变化。在Linux上,“ffmpeg”使用了“捕获API”,在Windows上有一个名为“video4windows”的版本。不幸的是,没有人为Mac制作过一个版本
幸运的是,您仍然可以使用此免费软件从命令行录制iSight摄像头的视频:
下面是它的用法示例
- 步骤1)查看存在哪些视频硬件:
- 步骤2)将视频捕获到文件中。在我的MacBook上,它将我的内部iSight摄像头报告为ID为“2”的USB设备,输入ID为“0”。下面是我的MacBook的外观。您的计算机的“视频设备”可能不同,您也可以省略“--video input 0”部分:
希望这有帮助 更新:当前(2014年8月)版本的ffmpeg支持QTKit和AVKit框架:
ffmpeg -f qtkit -video_device_index 0 -i "" out.mpg
或
您还可以获取可用设备的列表:
ffmpeg -f qtkit -list_devices true -i ""
旧答案:
我用QuickTime广播解决了这个问题。它是一个小型实用程序,用于捕获视频和音频,对其进行压缩,将压缩后的流打包成rtp数据包并传输到网络
因此,解决方案相当麻烦,需要双重编码,但它可以工作:
音频
和视频
选项卡中设置流网络
选项卡,将传输
设置为“手动单播”;地址
设置为“127.0.0.1”;端口
设置为类似“60006002”的值文件->将广播设置另存为…
到某个文件(例如Untitled.qtbr)文件->导出->SDP
。SDP代表“会话描述协议”,其中包含有关在何处查找流、流的参数和编解码器选项等信息osascript -e 'tell application "QuickTime Broadcaster" to start document "Untitled.qtbr"'
osascript -e 'tell application "QuickTime Broadcaster" to stop document "Untitled.qtbr"'
open-a VLC stream.sdp
)
因此,QTB充当“捕获代理”,使转换“直接转换为UDP套接字”
或将其传输到ffserver:
ffmpeg -i stream.sdp http://localhost:1881/feed1.ffm
(imho)很难为ffmpeg/libavdevice添加iSight支持。iSight有基于ObjC的API(QTKit),必须包装在C静态库中,而且ffmpeg必须与所有OS X特定框架链接-这是可行的,但需要大量工作。使用最新的ffmpeg,您可以将iSight视频和麦克风音频录制到一个文件中:
#列出可用的AVFoundation输入设备:
ffmpeg-f avfoundation-列表_设备true-i“”
#从设备0以30 fps的速度录制视频:
ffmpeg-r30-f avfoundation-i0 out.mp4
#从视频设备0和音频设备0录制:
ffmpeg-r30-f avfoundation-i0:0out.mp4
在撰写本文时,当使用音频录制视频时,您仍然可能会遇到。我可以使用wacaw将我的isight实时流式传输到ffserver(如video4linux2)吗?或者只是一般的实时流式传输如果您需要使用livestream,您将需要使用其他方式。我没有用过chazlever的“令人毛骨悚然的摄像头”,但它可能会根据您的需要工作。它位于这里:它需要安装“imagesnap”(因此也需要安装“自制”)。不过,我认为“爬行摄像头”的速度不会接近24fps,因为它的工作原理是反复调用“imagesnap”获取单个图像。还有苹果自己的QTS,不过我认为这是一种付费产品。VLC应用程序具有基于GUI的流媒体(请参见:),但如果您采用这种方式,您可能会与web技术一起破解某些东西,因为Flash还提供视频捕获。例如,使用ffmpeg进行实时流媒体的工作原理:ffmpeg-f avfoundation-i“0”-s 320x240-f flv-r 30.0“”流的质量非常差,和低fps。我在vlc上测试了stream.sdp:“open-a vlc stream.sdp”和ffserver上测试了stream.sdp:“ffmpeg-I stream.sdp”,两者的质量都很差。所以QTB肯定有问题。我将QTB中的设置设置为30 fps和1000 kbps,这没有任何区别。您使用的帧大小是多少?我目前使用的是600x480大多数屏幕是灰色的,可能有一个像素不存在。我确信我的isight也能工作,因为它在photobooth上工作得很好,等等。嗯,我用过1024x768@152000 mbps,它工作得很好(与iSight一样好)。QTB中的帧速率存在问题:似乎不管用户的设置如何,它都只能以15 fps的速度运行。
ffmpeg -i stream.sdp -vcodec mjpeg -an -vf vflip -y /tmp/q.avi
ffmpeg -i stream.sdp http://localhost:1881/feed1.ffm