You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用ffplay实现ffmpeg分屏视频效果并实时播放?

实时分屏预览解决方案(无需预转码)

你可以直接利用ffplay的滤镜支持,把你之前ffmpeg命令里的分屏逻辑直接移植过来,实现实时无等待的分屏播放,完全不需要生成中间文件。

核心命令

ffplay -i _20180114094126_flightvideo_cam1.mp4 -i _20180114094126_flightvideo_cam2.mp4 \
-filter_complex " \
[0:v]crop=1280:360:0:0[v0]; \
[1:v]scale=1280:-1,crop=1280:360:0:0[v1]; \
[v0][v1]vstack[v]" \
-map [v]

命令详解

这个命令完全对应你之前ffmpeg转码的分屏逻辑:

  • -i参数同时加载两个视频源,和转码命令一致
  • filter_complex里的滤镜链和你之前的完全相同:
    1. 对第一个视频([0:v])裁剪出1280x360的区域,输出为[v0]
    2. 对第二个视频([1:v])先缩放宽度到1280(高度按比例自动调整),再裁剪出1280x360的区域,输出为[v1]
    3. 通过vstack把[v0]和[v1]垂直拼接成最终的分屏画面[v]
  • -map [v]指定只播放拼接后的视频流(如果需要处理音频,可以添加音频相关的滤镜或映射,比如-map 0:a或-map 1:a选择其中一个音频,或者用amix混合音频)

优化建议

如果遇到播放卡顿或延迟过高,可以尝试添加以下参数:

  • -fflags nobuffer:降低播放缓存,减少延迟
  • -framerate 30:强制统一帧率(如果两个视频帧率不一致时有用)
  • -preset ultrafast:进一步加快滤镜处理速度,适配低性能设备

对比原有工作流

原来的ffmpeg转码是先把处理后的视频编码写入文件,再播放;而ffplay是直接在解码后实时处理滤镜并渲染到屏幕,跳过了编码写入磁盘的步骤,所以能做到秒开分屏预览,完全不需要等待那3分钟的转码时间。

内容的提问来源于stack exchange,提问作者Mark Antonie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:36:39