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的更多配置和使用,可以参考相关文档。

我的博客地址

相关推荐
八月的雨季 最後的冰吻5 小时前
FFmepg-- 32-ffplay源码- PacketQueue 的线程安全机制 以及 serial 字段的作用
安全·ffmpeg
周杰伦_Jay6 小时前
【大模型数据标注】核心技术与优秀开源框架
人工智能·机器学习·eureka·开源·github
凯新生物8 小时前
mPEG-SS-PLGA-DTX:智能药物递送系统
eureka·flink·ffmpeg·etcd
吴敬悦9 小时前
私有的 GitHub Package 怎么拉取?
npm·github
学而知不足~10 小时前
字幕转码杂记
ffmpeg
小胖霞12 小时前
全栈系列(15)github Actions自动化部署前端vue
前端·node.js·github
飞睿科技13 小时前
ESP Audio Effects音频库迎来专业升级,v1.2.0 新增动态控制核心
人工智能·物联网·ffmpeg·智能家居·语音识别·乐鑫科技·esp
CoderJia程序员甲13 小时前
GitHub 热榜项目 - 日榜(2025-12-15)
git·ai·开源·llm·github
知行力15 小时前
【GitHub每日速递 20251215】微软开源12周26课机器学习入门课程,多语言支持还能离线学!
机器学习·开源·github
NZT-4815 小时前
服务器访问github受限的解决办法
运维·服务器·github