如何使用 ffmpeg 将网络摄像头(视频)录制内容添加为覆盖

如何使用 ffmpeg 将网络摄像头(视频)录制内容添加为覆盖

我创建了以下命令来在视频中叠加图像(桌面录制):

C:\>ffmpeg -y -rtbufsize 100M -f gdigrab -framerate 20 -offset_x 0 -offset_y 0 -video_size 1250x750 -draw_mouse 1 -i desktop -f dshow -i audio="Microphone (High
 Definition Audio Device)" -c:v libx264 -r 20 -preset ultrafast -tune zerolatency -crf 30 -pix_fmt yuv420p -c:a libmp3lame -qscale:a 4 "D:\today.mp4"  -i "C:\My.jpg"  -filter_complex "pad=height=ih+10:color=black,overlay=(main_w-overlay_w):main_h-overlay_h"

并且能够看到预期的结果,但是当我使用我的网络摄像头时

video="HP Truevision HD"

我尝试查找图像而不是图像文件,但出现错误。

答案1

使用

ffmpeg -y -rtbufsize 100M -f gdigrab -framerate 20 -offset_x 0 -offset_y 0
       -video_size 1250x750 -draw_mouse 1 -i desktop
       -f dshow -i video="HP Truevision HD":audio="Microphone (High Definition Audio Device)"
       -filter_complex "[0]pad=height=ih+10:color=black[b];
                        [b][1:v]overlay=(main_w-overlay_w):main_h-overlay_h[v]" -map "[v]"
       -c:v libx264 -r 20 -preset ultrafast -tune zerolatency -crf 30 -pix_fmt yuv420p
       -map 1:a -c:a libmp3lame -qscale:a 4 "D:\today.mp4"  

答案2

这是我的做法:

#!/bin/env zsh

file=`date +%Y-%m-%d-%H.%M.%S`
ffmpeg -f alsa -i pulse -f x11grab -thread_queue_size 64 -i :0.0 -i /dev/video0 \
       -filter_complex 'overlay=main_w-overlay_w:main_h-overlay_h' \
    -r 60 -preset ultrafast ~/Videos/screencast-${file}.mp4

我想弄清楚的一件事是如何缩小相机尺寸。

相关内容