sierra screenflow pantalla macbook mac high grabar con como captura macos ffmpeg avfoundation screen-capture camera-overlay

macos - screenflow - Grabación de pantalla ffmpeg con superposición de cámara en OSX



grabar pantalla mac os high sierra (1)

Me gustaría usar ffmpeg para grabar mi escritorio y mi cámara como una superposición en la parte superior del escritorio.

Así que, básicamente, tendré dos fuentes de entrada que deben registrarse

$ 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

De lo anterior, necesito [0] FaceTime HD Camera como superposición y [1] Capture screen 0 como video principal.

¿Esto es posible?

ACTUALIZACIÓN (2015-10-06):

Encontré el siguiente comando de 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"

Lamentablemente, la salida tiene un framerate bastante lento (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

Alguien una idea de cómo obtener una mayor tasa de cuadros por segundo? Mi cámara solo puede grabar a 30 fotogramas por segundo, pero la salida parece tener solo 9 fotogramas. ¿Por qué la diferencia?


Para mí esto funciona, ffmpeg versión 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

NOTA: leí en la documentación que la opción ''-r'' es para la salida, por lo que la tiene en el lugar incorrecto en su comando. El valor ''-crf'' que da parece exagerado, si la documentación dice que un valor de 18 es un video visual sin pérdidas. Probablemente también necesites jugar con el valor ''-thread_queue_size'' para tu sistema específico.