gpt4 book ai didi

macos - 使用 ffmpeg 使用 isight 录制视频

转载 作者:行者123 更新时间:2023-11-28 21:39:01 34 4
gpt4 key购买 nike

因此,要在 Linux 上使用 ffmpeg 录制网络摄像头视频,您可以使用类似...

ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 out.avi

但是在 Mac 上这不起作用,所以我想知道如何在 Mac 上使用 isight 和 ffmpeg 进行录制?

我研究过,很多人都说这是不可能的,但这些帖子中的大部分都非常老,所以我想知道从那以后它是否发生了变化。

最佳答案

更新:当前(2014 年 8 月)版本的 ffmpeg 支持 QTKit 和 AVKit 框架:

ffmpeg -f qtkit -video_device_index 0 -i "" out.mpg

ffmpeg -f qtkit -i "default" out.mpg

您还可以获得可用设备列表:

ffmpeg -f qtkit -list_devices true -i ""

旧答案:

我用 QuickTime Broadcaster 解决了这个问题。它是捕获视频和音频、对其进行压缩、将压缩流打包为 rtp 数据包并将其传输到网络的小型实用程序。

因此解决方法非常麻烦,并且需要双重编码但它有效:

  1. 在 QuickTime Broadcaster 的 AudioVideo 选项卡中设置流

  2. 转到Network选项卡,将Transmission设置为“Manual Unicast”,将Address设置为“127.0.0.1”,端口到类似“6000, 6002”的端口

  3. File -> Save Broadcast Settings As... 到某个文件(例如 Untitled.qtbr)

  4. 导出 SDP 文件:文件 -> 导出 -> SDP。 SDP 代表“ session 描述协议(protocol)”,其中包含有关在哪里可以找到流、其参数和编解码器选项等信息。

  5. 现在您可以从命令行启动/停止 QTB:

    osascript -e 'tell application "QuickTime Broadcaster" to start document "Untitled.qtbr"'

    osascript -e 'tell application "QuickTime Broadcaster" to stop document "Untitled.qtbr"'

启动 QTB 后,ffmpeg 将能够使用您在第 4 步导出的 sdp 文件读取压缩流(实际上,您可以在 VLC 或 QuickTime 播放器中打开它:open -a vlc stream.sdp).

因此 QTB 充当“捕获代理”,进行“iSight 到 UDP 套接字”的转换。

ffmpeg -i stream.sdp -vcodec mjpeg -an -vf vflip -y /tmp/q.avi

或者传送到ffserver:

ffmpeg -i stream.sdp http://localhost:1881/feed1.ffm

(恕我直言)很难将 iSight 支持添加到 ffmpeg/libavdevice。 iSight 具有基于 ObjC 的 API (QTKit),它必须包装在 C 静态库中,而且 ffmpeg 必须与所有 OS X 特定框架链接——这是可行的,但需要大量工作。

关于macos - 使用 ffmpeg 使用 isight 录制视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18966994/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com