本文方法使用的场景是多个视频在同一个屏幕上同步播放。这在对比多个比较相似的视频时非常有用。比如:在研究视频插帧方法时,对比同一个视频不同帧率的流畅度。
mpv是一款免费的视频播放软件,它具有强大的命令行控制功能。本文介绍了如何通过命令行,使用mpv实现多个视频的同步播放。步骤如下:

1. 下载安装mpv

从这里下载https://mpv.io/installation/,Windows平台的可以直接选第一个下载地址sourceforge平台的安装包。
当然,也可以直接下载安装SVP,里面自带有mpv。
安装好后记得将mpv.exe的路径加到系统环境变量中。

2. 两个视频同步播放

打开命令行,输入下面的命令:

mpv.exe a.mp4 --external-file=b.mp4 --lavfi-complex="[vid1] [vid2] hstack [vo]" --loop

其中,要将a.mp4b.mp4替换成自己的视频名字,分别会显示在左边和右边。最后面的--loop表示循环播放。效果如下:

3. 四个视频同步播放

打开命令行,输入下面的命令:

mpv.exe a.mp4 --external-file=b.mp4 --external-file=c.mp4 --external-file=d.mp4 --lavfi-complex="[vid1] [vid2] hstack [t1];[vid3] [vid4] hstack [t2]; [t1] [t2] vstack [vo]" --loop

效果如下:

4. mpv常用命令

  • { },按2的倍数调节播放速度
  • , .,前进或者后退一帧
  • space,暂停或播放

5. 批处理

可以将命令保存到.bat文件方便经常使用,以播放两个视频为例:

start mpv.exe a.mp4 --external-file=b.mp4 --lavfi-complex="[vid1] [vid2] hstack [vo]" --loop
pause

6. 【可选】解释一下:–lavfi-complex

该命令设置了一个复杂的libavfilter的filter,然后构建出一个可以输入多个视频或音频轨道的图(graph),这个图输出只有一个音频或(和)一个视频轨道。规则如下:

  • 名为aidN这样的标签指定了N个音轨输入,例如aid1
  • 名为vidN这样的标签指定了N个视频轨道输入,
  • 名为ao的标签指定了声音输出
  • 名为vo的标签指定了视频输出

注意输入的视频大小需要一致,如果不一致会报错。当然,也可以使用scale filter缩放成相同大小。这里不做过多介绍,有兴趣可以参考官方文档。

7. 参考

  • https://github.com/mpv-player/mpv/issues/3854
  • https://mpv.io/manual/master/

用mpv实现多视频同步播放相关推荐

  1. 音视频同步(播放)原理

    每一帧音频或视频都有一个持续时间:duration: 采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数. .正常人听觉的频率范围大约在20Hz~20kHz之间,根据奈奎斯特采样理论 ...

  2. ffmpeg播放器 android,Android使用FFmpeg(六)--ffmpeg实现音视频同步播放

    关于 准备工作 正文 依旧依照流程图来逐步实现同步播放: 从流程图可以看出,实现同步播放需要三个线程,一个开启解码的装置得到packet线程,然后分别是播放音频和视频的线程.这篇简书是以音频播放为基准 ...

  3. FFmpeg基础:音视频同步播放

    文章目录 定义全局数据类 定义数据队列 定义SDL库初始化操作 定义音视频流解析函数 定义解封装线程和视频解码线程 定义音视频的解码函数 主函数事件响应 视频文件解复用之后视频流和音频流是独立的,也是 ...

  4. ffmpeg java 播放视频_Javacv使用ffmpeg实现音视频同步播放

    最近用javaCV的ffmpeg包的FFmpegFrameGrabber帧捕捉器对捕捉到的音频帧和视频帧做了同步的播放.采用的同步方法是视频向音频同步. 具体的思路如下: (1)首先介绍ffmpeg是 ...

  5. Vue 实现两个视频同步播放、暂停,进度条、倍速保持一致

    1.安装 vue-video-player: npm install vue-video-player --save 2.在 main.js 中引入: import VideoPlayer from ...

  6. 视频、音频打时间戳的方法及其音视频同步(播放)原理

    https://blog.csdn.net/nine_locks/article/details/48007055

  7. Android FFmpeg系列——5 音视频同步播放

    https://blog.csdn.net/JohanMan/article/details/83176144

  8. 基于FFmpeg和Android的音视频同步播放实现

    https://blog.csdn.net/ericbar/article/details/80785764 https://blog.csdn.net/AndroidAlvin/article/de ...

  9. PPT 如何两个视频同步播放

最新文章

  1. 20个经典要诀学好英语
  2. 产生一定范围随机数的通用算法公式
  3. (0024)iOS 开发之MJExtension可能遇到全部问题
  4. 几u产品结构计算机什么意思,计算机u系统组成.ppt
  5. 本地git首次连接远程github仓库
  6. Intel Realsense 处理帧时报错:RuntimeError: null pointer passed for argument frame_ref
  7. Android 和 Chrome OS 融合的可能性
  8. idea内置junit5_JUnit的内置Hamcrest Core Matcher支持
  9. “相当一部分”HPE公司OpenStack工作人员被转移至SUSE
  10. 【Linux】Linux软件安装和定时任务
  11. linux c中字符替换函数,Linux C 支持正则表达式的字符串替换函数
  12. 业务信息化与管理信息化
  13. 缓存中间件技术选型Memcached、MongoDB、Redis
  14. 智能家居 (9) ——人脸识别摄像头安装实现监控功能
  15. css中 =是什么意思,CSS中link什么意思
  16. PR视频去水印—中间值
  17. Jenkins测试报告邮件通知模板(转载)
  18. 天猫精灵python开发_天猫精灵X1智能音箱使用感想
  19. 苹果公布 2022 Apple 设计大奖入围作品
  20. ov2604寄存器配置

热门文章

  1. Rust开发环境搭建(Linux)
  2. 自助商务智能的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  3. AVS-CABAC算法原理简介2
  4. vue的tap插件_Vue.js的RTF编辑器– Tiptap
  5. PAN3031 双工无线通信 低功耗远距离无线收发芯片
  6. JavaWeb项目导入IDEA出现错误
  7. PADS运行脚本出现“Active X Automation:server could not be found”
  8. 腾讯移动安全实验室全年手机病毒行业报告
  9. Chrome浏览器地址栏配置二维码自动生成工具
  10. 重庆的小面50强[转自经典重庆]