视频拼接服务分享

源码请参照:

GitHub - ixingqiao/mediaeditorserver: 视频编辑服务,音视频编辑服务MediaEditorServer,缩写为:UMES,提供音视频的编辑能力,如音视频的多视频拼接服务能力,视频的转码能力,充分利用硬件的加速效果,提供更加高效的音视频的处理能力。 默认端口:7070,提供HTTP服务,HTTP-JSON 的Restful风格的无状态服务 支持docker运行一键运行

视频拼接服务

音视频编辑服务MediaEditorServer,缩写为:UMES,提供音视频的编辑能力

默认端口:7070,提供HTTP服务,HTTP-JSON 的Restful风格的无状态服务

支持默认转场效果:20个

视频拼接服务要求拼接的视频文件编码格式yuv,分辨率,帧率要完全一致,且仅支持H264的视频编码

默认的最大并行任务数5个

功能列表

  • 音视频的多视频拼接
  • 视频转场
  • 充分利用硬件的加速效果,提供更加高效的音视频的处理能力
  • 服务版本信息查询
  • 任务状态查询
  • 任务完成异步通知
  • 日志管理,最多保存30天的日志
  • 辅助测试工具

视频格式

支持H264 MP4码流的视频拼接,例如:['1.mp4','2.mp4','3.mp4']

硬件加速

使用专属的硬件Nvidia Cuda 来实现硬件加速的效果,利用nvEnc、nvDec的硬件编解码单元来提速

  • 通过nvidia-smi dmon 查看使用的效果
  • NVIDIA-SMI 535.171.04
  • Driver Version: 535.171.04
  • CUDA Version: 12.2

转场

支持多个短视频拼接,同时支持配置多个转场设置,多个短视频依次选择多个多个转场效果,若配置1个转场效果则,短视频拼接即使用一个转场, 例如:短视频文件['1.mp4','2.mp4','3.mp4','4.mp4'] 转场设置['circlecrop','circleopen'] 则1.mp4+circlecrop+2.mp4+circleopen+3.mp4+circlecrop+4.mp4

  • circlecrop: 圆形裁剪效果
  • circleopen: 圆形打开效果
  • circleclose: 圆形关闭效果
  • dissolve: 溶解效果
  • fadeblack: 黑色淡入淡出效果
  • fadewhite: 白色淡入淡出效果
  • fade: 淡入淡出效果
  • horzopen: 水平打开效果
  • horzclose: 水平关闭效果
  • pixelize: 像素化效果
  • radial: 放射状效果
  • rectcrop: 矩形裁剪效果
  • slideleft: 从右向左滑动效果
  • slideright: 从左向右滑动效果
  • slideup: 从下向上滑动效果
  • slidedown: 从上向下滑动效果
  • wipeleft: 从右向左擦除效果
  • wiperight: 从左向右擦除效果
  • wipeup: 从下向上擦除效果
  • wipedown: 从上向下擦除效果

docker构建

由于使用的是Ubuntu 24.04 所以需要主机系统18.04(含)之后,docker版本需要大于Docker version 20.10.10, 构建命令可参照: sudo bash ./generate_version.sh tag_time=(date "+.%Y%m%d") image_tag2={image_tag}{tag_time} platform=x86_64 image_name2={image_name}"-"{platform} sudo docker build --force-rm --no-cache -f=./Dockerfile -t {image_name2}:${image_tag2} .

服务运行

如下命令运行:docker run -itd --gpus all -e NVIDIA_DRIVER_CAPABILITIES=all --name umes --hostname umes --privileged=true --net=host -v /data/:/data -v /usr/local/cuda/:/usr/local/cuda/ umes-x86:1.0.1.20240522

服务运行的工作目录/opt/umes/ 默认端口:7070

可以参照doc/视频拼接服务接口文档.docx简单的接口介绍和源代码通过postman即可进行接口测试

授权协议

本项目自有代码使用宽松的MIT协议,在保留版权信息的情况下可以自由应用于各自商用、非商业的项目。 但是本项目也零碎的使用了一些其他的开源代码,在商用的情况下请自行替代或剔除; 由于使用本项目而产生的商业纠纷或侵权行为一概与本项目及开发者无关,请自行承担法律风险。 在使用本项目代码时,也应该在授权协议中同时表明本项目依赖的第三方库的协议。

鸣谢

脚本实现参照了GitHub - qq2225936589/xfade-ffmpeg-script: A bash script that uses ffmpeg's xfade transition filter to connect multiple video files to a single file.

相关推荐
彷徨而立21 分钟前
【音频编解码】音频编码格式 G.722、G.722.1、G.722.1.C 的区别
音视频
诸葛亮的芭蕉扇32 分钟前
iOS视频自动全屏问题解决方案
ios·音视频
牛大兵1 小时前
播放网络摄像头视频支持ONVIF/RTSP
网络·python·音视频
这是程序猿2 小时前
ComfyUI 教程合集|AI绘图、ControlNet、Lora、IPAdapter、视频生成全攻略
大数据·人工智能·windows·音视频
ai产品老杨3 小时前
解构企业级AI视频中台:基于X86/ARM与GPU/NPU异构架构的深度演进与源码交付实践
arm开发·人工智能·音视频
AI服务老曹4 小时前
打破设备割裂:基于 GB28181 与 RTSP 的边缘计算 AI 视频平台架构解析(附源码交付与 Docker 部署)
人工智能·音视频·边缘计算
AI服务老曹4 小时前
深度解析:支持异构计算与 Docker 部署的 AI 视频管理平台——基于 GB28181/RTSP 与源码交付的架构实战
人工智能·docker·音视频
maaath4 小时前
【maaath】Flutter for OpenHarmony 跨平台工程集成音视频播放能力实战
flutter·华为·音视频·harmonyos
weixin_451431565 小时前
HLS加密流解码异常导致视频花屏?通用技术解析及合规指引
网络·音视频
reasonsummer1 天前
【教学类-160-11】20260419 AI视频培训-练习011“豆包AI视频《佛源植语》+豆包图片风格:无(关键词:藏传唐卡)”
数据库·音视频·豆包