QuickTime Player是唯一能原生启用画中画(PiP)播放本地直播流的macOS应用;需通过「文件→打开URL」加载HLS或HTTP MP4流,再选「查看→进入画中画」;RTMP等不支持协议须先用ffmpeg转HLS,并通过HTTP服务访问。

你正在用Mac看本地直播流(比如OBS推流到本地HTTP服务器、或VLC拉取rtmp/udp流),想让它悬浮在所有窗口上边工作边盯画面,又不依赖第三方工具——macOS原生画中画功能其实能支持,但必须走QuickTime Player这条路径,其他播放器不行。
用QuickTime Player播本地直播流启画中画
这一步是唯一稳定启用原生PiP的方式,因为只有QuickTime Player被系统深度集成,能直接调用AVKit的PiP API;VLC、IINA、Chrome等要么需网站授权、要么只支持文件不支持实时流。
第一步:打开QuickTime Player → 顶部菜单栏点「文件」→「打开URL…」
第二步:粘贴你的本地直播地址,例如 【http://localhost:8080/stream.mp4】 或 【rtmp://127.0.0.1/live/stream】(注意:QuickTime仅原生支持HTTP Live Streaming(HLS)和部分HTTP MP4流;rtmp需先用ffmpeg转成HLS,否则会报错“无法打开”)
第三步:点击「打开」后等待几秒——如果地址有效且格式受支持,画面会开始播放;此时QuickTime界面底部控制条自动出现
第四步:点菜单栏「查看」→「进入画中画」。窗口立刻脱离主界面,变成半透明浮动窗,拖到屏幕右上角也不会被邮件App盖住。
当QuickTime打不开你的直播地址时
说明协议或封装不被原生支持,得临时转成HLS再喂给QuickTime。这不是绕路,而是必须的前置动作——否则PiP按钮灰色不可点。
方法一:用ffmpeg把rtmp转成本地HLS(终端执行):
ffmpeg -i rtmp://127.0.0.1/live/stream -codec: copy -start_number 0 -hls_time 2 -hls_list_size 3 -f hls /tmp/live.m3u8
方法二:启动一个轻量HTTP服务共享m3u8(Python3一行命令):
python3 -m http.server 8000 -d /tmp
方法三:在QuickTime里打开新URL:【http://localhost:8000/live.m3u8】 → 播放成功后再点「查看→进入画中画」
用Safari播本地HTML页面里的直播视频
如果你把直播嵌在本地HTML文件里(比如用video标签+src="http://localhost:8080/index.m3u8"),Safari也能触发PiP,但有硬性前提:页面必须通过file://协议以外的方式打开,否则安全策略会禁用媒体API。
方法1:用Python起本地服务器(推荐):
cd 到你的HTML所在文件夹 → 终端运行 python3 -m http.server 9000
方法2:在Safari中访问 【http://localhost:9000/your-page.html】,确保视频已自动播放(静音也行)
方法3:鼠标悬停视频 → 右下角控件栏出现后,点那个□ inside □图标;或者右键视频 → 选「在画中画中播放」
注意:如果右键菜单没有该选项,说明video标签缺少playsinline和webkit-playsinline属性,得手动改HTML——否则Safari拒绝暴露PiP接口。

















