Mac使用FFmpeg进行屏幕录制,并使用VLC本地播放

这是一篇关于如何在Mac上使用FFmpeg进行屏幕录制,并使用VLC播放器进行本地播放的教程,默认读者已经安装好了FFmpegVLC播放器。 本文将介绍如何使用FFmpeg命令行工具进行屏幕录制,并通过VLC播放器进行实时播放,对于FFmpegVLC的安装和基础使用,读者可以参考相关文档。

1. Mac上捕获屏幕的FFmpeg输入源

在Mac上,FFmpeg可以使用avfoundation输入源来捕获屏幕内容。要查看可用的设备列表,可以运行以下命令:

bash 复制代码
ffmpeg -f avfoundation -list_devices true -i ""

你会看到类似如下的输出:

bash 复制代码
AVFoundation video devices:
[0] Capture screen 0
[1] FaceTime HD Camera

AVFoundation audio devices:
[0] MacBook Pro Microphone
[1] Multi-Output Device

2. 直播Mac屏幕

假设你要推流到一个 RTMP 服务器(例:rtmp://localhost/live/stream)

2.1 不包含音频的屏幕录制命令:

bash 复制代码
ffmpeg \
  -f avfoundation -framerate 30 -i "0:none" \
  -c:v libx264 -preset veryfast -f flv rtmp://localhost/live/stream

2.2 包含音频的屏幕录制命令:

bash 复制代码
ffmpeg \
  -f avfoundation -framerate 30 -i "0:0" \
  -c:v libx264 -preset veryfast -maxrate 3000k -bufsize 6000k \
  -c:a aac -b:a 128k \
  -f flv rtmp://localhost/live/stream

解释:

  • "0:0" → (屏幕设备 ID : 音频设备 ID)
  • 0 = 主屏幕
  • 0 = 麦克风
  • -framerate 30 → 流畅度佳,CPU占用适中
  • -f flv → RTMP 必须使用 FLV 封装
  • libx264 → 网络直播最稳定

2.3 配置nginx-full

通常路径:

bash 复制代码
/opt/homebrew/etc/nginx/nginx.conf

nginx.conf中添加RTMP模块配置:

nginx 复制代码
rtmp {
    http { ... }

    # 下面是要添加的内容
    server {
        listen 1935;

        application live {
            live on;
            record off;
        }
    }
}

2.4 启动nginx-full

bash 复制代码
brew services start nginx-full

2.5 验证RTMP是否启动成功

bash 复制代码
lsof -i :1935

如果看到 nginx 在监听该端口,说明启动成功

bash 复制代码
nginx   12345   ...   LISTEN

2.6 推流FFmpeg

bash 复制代码
ffmpeg \
  -f avfoundation -framerate 30 -i "0:none" \
  -c:v libx264 -preset veryfast -f flv rtmp://localhost/live/stream

2.7 使用VLC播放RTMP流

打开VLC播放器,选择"打开网络串流",输入以下URL:

bash 复制代码
rtmp://localhost/live/stream

点击"播放",即可观看实时屏幕录制内容。

3. 最后

在本文中,除了介绍如何使用FFmpeg在Mac上进行屏幕录制外,还涵盖了如何配置nginx-full以支持RTMP流的推送和播放。关于nginx-full的更多配置和使用,可以参考相关文档。

我的博客地址

相关推荐
CLTHREE4 小时前
GitHub项目协作完整指南:从Fork到本地开发
github
小鱼小鱼.oO4 小时前
GitHub Actions 和 GitLab CI/CD
ci/cd·gitlab·github
AWS官方合作商5 小时前
告别漫长等待:利用 Amazon GameLift Servers 实现分钟级快速迭代
前端·git·云计算·github·aws
正经教主5 小时前
【Git】Git05-02:Github 基础同步命令
git·github
蝎子莱莱爱打怪6 小时前
MinIO的安装记录
java·后端·github
逛逛GitHub6 小时前
清华联合开源!首个基于 MCP 的 RAG 框架,太秀了。
github
vivo互联网技术9 小时前
Android动效探索:彻底弄清如何让你的视频更加酷炫
android·ffmpeg·跨平台·图形·mediaplayer·纹理·opengl es·坐标系
阿凤2111 小时前
如何访问GitHub?
github
正经教主1 天前
【Git】Git05-01:Git 远程仓库协作流程原理
git·gitlab·github