loc*_*doc 9 macos ffmpeg screen-capture avfoundation camera-overlay
我想用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
Run Code Online (Sandbox Code Playgroud)
从上面,我需要[0] FaceTime高清摄像机作为叠加,[1]捕获屏幕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"
Run Code Online (Sandbox Code Playgroud)
不幸的是,输出的帧速率相当慢(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
Run Code Online (Sandbox Code Playgroud)
谁知道如何获得更高的帧率?我的相机只能以每秒30帧的速度进行录制,但输出似乎只有9帧左右.为什么不同?
Fel*_*raz 11
对我来说,这是有效的,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
Run Code Online (Sandbox Code Playgroud)
注意:我在文档中读到'-r'选项用于输出,因此您将它放在命令中的错误位置.如果文档说18的值是视觉上无损的视频,那么你给出的'-crf'值似乎有点夸张.您可能还需要使用特定系统的"-thread_queue_size"值.
| 归档时间: |
|
| 查看次数: |
2784 次 |
| 最近记录: |