【问题标题】:ffmpeg screen recording with camera overlay on OSX在 OSX 上使用相机覆盖的 ffmpeg 屏幕录制
【发布时间】:2015-12-28 01:09:49
【问题描述】:

我想使用 ffmpeg 将我的桌面以及我的相机记录为桌面顶部的叠加层。

所以基本上我会有两个需要记录的输入源

$ ffmpeg -f avfoundation -list_devices true -i ''
[AVFoundation input device @ 0x7fded1c223e0] AVFoundation video devices:
[AVFoundation input device @ 0x7fded1c223e0] [0] FaceTime HD Camera
[AVFoundation input device @ 0x7fded1c223e0] [1] Capture screen 0
[AVFoundation input device @ 0x7fded1c223e0] AVFoundation audio devices:
[AVFoundation input device @ 0x7fded1c223e0] [0] Built-in Microphone

从上面,我需要 [0] FaceTime 高清摄像头作为叠加层和 [1] Capture screen 0 作为主视频。

这可能吗?

更新(2015-10-06):

我从ffscreencast找到了以下命令:

ffmpeg \
-f avfoundation -i "1" \
-f avfoundation -r 30 -video_size 640x480 -i "0" \
-c:v libx264 -crf 0 -preset ultrafast \
-filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10' "out.mkv"

不幸的是,输出的帧速率非常慢(i7 Macbook Pro 2014)

Output #0, matroska, to 'out.mkv':
  Metadata:
encoder         : Lavf56.40.101
Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuv420p, 3840x2400, q=-1--1, 1000k fps, 1k tbn, 1000k tbc (default)
Metadata:
  encoder         : Lavc56.60.100 libx264
Stream mapping:
  Stream #0:0 (rawvideo) -> overlay:main
  Stream #1:0 (rawvideo) -> overlay:overlay
  overlay -> Stream #0:0 (libx264)

frame=  756 fps=9.1 q=-1.0 Lsize=  193660kB time=00:01:21.86 bitrate=19378.5kbits/s
Press [q] to stop, [?] for help

有人知道如何获得更高的帧速率吗? 我的相机只能以每秒 30 帧的速度记录,但输出似乎只有大约 9 帧。为什么会有差异?

【问题讨论】:

  • ffmpeg 确实有一个覆盖过滤器,所以我猜它是。
  • 是的,我刚刚找到它,但似乎仍然很慢。
  • 您好 lockdoc,您使用的是哪个 OS X 版本。我使用的是 10.10.5,命令“ffmpeg -f avfoundation -list_devices true -i ''”只显示 1 个输入设备(相机)。
  • 嗨,我正在使用命令:'ffmpeg -f avfoundation -framerate 30 -i "1" -f avfoundation -framerate 30 -video_size 640x480 -i "0" -r 30 /Users/admin/Documents /Swati/test/test.flv': 错误 >>>输出文件 #0 不包含来自我的 mac APP 的任何流
  • ffmpeg 版本:3.2.1

标签: macos ffmpeg avfoundation screen-capture camera-overlay


【解决方案1】:

对我来说这是可行的,ffmpeg 2.8 版:

ffmpeg -thread_queue_size 50 \
-f avfoundation -framerate 30 -i "1" \
-thread_queue_size 50 -f avfoundation -framerate 30 -video_size 640x480 -i "0" \
-c:v libx264 -crf 18 -preset ultrafast \
-filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10' -r 30 ~/Desktop/out.mkv

注意:我在文档中读到“-r”选项用于输出,因此您将其放在命令中的错误位置。如果文档说 18 的值是视觉无损视频,那么您给出的“-crf”值似乎被夸大了。您可能还需要针对您的特定系统使用“-thread_queue_size”值。

【讨论】:

  • 谢谢,这很有帮助。
猜你喜欢
  • 1970-01-01
  • 2022-10-25
  • 1970-01-01
  • 1970-01-01
  • 2015-02-08
  • 1970-01-01
  • 1970-01-01
  • 2012-11-19
  • 2020-12-21
相关资源
最近更新 更多