php与ffmpeg和mencoder处理视频

2024-08-23 19:32

本文主要是介绍php与ffmpeg和mencoder处理视频,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://www.dayanmei.com/blog.php/ID_959.htm

在经历了一个自己摸索的过程和看过一个网络上的一个收费视频网站的解决方案后,谈一下我自己的在windows下的视频解决方案,如有不对之处请指正,本文仅对视频网站解决方案做简单描述,本站原创,转载请注明出处.

刚 到公司后接到的第一个项目竟然是视频网站,对于如何调用其他程序都不知道的我来说,难道可想而知,不过还好另外有一个JAVA程序员同时跟我合作,可惜后 来他因为某些原因辞职,最后的任务还是担在了我的身上,由于对linux不熟悉,所以个人偏向于在windows下处理,开始的时候居然使用php函数exec执行视频转换软件来转换视频,这样遇到的一个问题就是,当有大量用户同时上传的时候导致服务器死机,另外看到那个收费网站居然也是用exec函数调用视频转换软件,强烈的汗!

1.需要的软件
视 频转换软件方面ffmpeg是比较优秀的,但是不支持rm和rmvb两种常用视频格式,而mencoder虽然支持rm和rmvb格式,但是占用资源异常 厉害,所以采用ffmpeg和mencoder相结合的方式,rm和rmvb格式交由mencoder处理,其他由ffmpeg转换,另外经过视频转换后 的flv视频会丢失信息,比如播放时长等,这个可用flvtool2这个工具来修复,而视频播放软件mplayer则可以用来获取视频时长和视频截图
mencoder
ffmpeg
flvtool2
mplayer

2.需要解决的问题
(1).大文件上传
php直接上传一个主要的是上传进度不好控制,所以采用flash上传,这个方面可以使用swfupload来处理
http://swfupload.org/
另外一个是结合cgi程式处理上传的uber-upload
http://uber-uploader.sourceforge.net/
相对而言对于cgi不熟悉的我,第一个比较容易

(2).视频转换
使 用exec直接调用视频软件转换会碰到的问题在前面已经说过,所以不要直接调用exec转换,在了解过网上一些资料后决定采用计划任务方式处理,定时扫描 上传来的文件夹,执行视频转换,截取视频缩略图,执行flvtool2修复视频,通知数据库记录已经成功转换视频。由于转换仍然是比较消耗资源的,所以通 常需要视频转换服务器和web服务器分开,另外视频文件一般较大,所以依然需要分开多个服务器放置视频

1台视频转换服务器
1台web服务器
2台视频服务器(可扩展)
视频上传后,使用定时计划任务扫描上传文件,php.exe调用php的ftp转移到视频转换服务器
视频转换服务器使用定时计划任务转换视频,转换完成后php.exe调用php的ftp程式转移到其他视频服务器(ftp根据需要转移到不同的服务器),成功转移后使用curl提交 到web服务器,更新视频状态和视频路径等数据

如果对计划任务不熟悉,可以看一下这篇文章
bat语法命令

另外这篇文章提供能很多有用的技术,可以参考

http://www.discuz.net/viewthread.php?tid=633057

 

这篇关于php与ffmpeg和mencoder处理视频的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100301

相关文章

浅析Java中如何优雅地处理null值

《浅析Java中如何优雅地处理null值》这篇文章主要为大家详细介绍了如何结合Lambda表达式和Optional,让Java更优雅地处理null值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录场景 1:不为 null 则执行场景 2:不为 null 则返回,为 null 则返回特定值或抛出异常场景

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

resultMap如何处理复杂映射问题

《resultMap如何处理复杂映射问题》:本文主要介绍resultMap如何处理复杂映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录resultMap复杂映射问题Ⅰ 多对一查询:学生——老师Ⅱ 一对多查询:老师——学生总结resultMap复杂映射问题

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤