php使用ffmpeg,PHP使用ffmpeg实现后台视频转码,如何监听转化的进度?

用户投稿 13 0

关于“php_使用_ffmpeg”的问题,小编就整理了【4】个相关介绍“php_使用_ffmpeg”的解答:

PHP使用ffmpeg实现后台视频转码,如何监听转化的进度?

如果进程是由php发起,可以直接从stdout中获得ffmpeg输出的已编码时长,除以片长得到进度百分比。

另外一种方法是,用ffmpeg的report参数打印程序输出到某个指定文件中,读取提取该文件中的已编码时长,同上,除以片长得到进度百分比....

ffmpeg参数最佳设置?

FFmpeg是一个非常强大的音视频处理工具,它的参数设置可以根据不同的需求进行调整。以下是一些常用的参数设置,供你参考:

转换视频格式:

格式转换:-i [input] [output]

调整分辨率:-i [input] -vf scale=640:360 [output]

调整帧率:-i [input] -r 30 [output]

调整视频质量:-i [input] -crf 23 [output] (CRF值越小,质量越好,但是文件大小也会越大)

转换音频格式:

格式转换:-i [input] [output]

调整采样率:-i [input] -ar 44100 [output]

调整码率:-i [input] -b:a 128k [output]

裁剪视频:

按时间裁剪:-i [input] -ss 00:01:00 -to 00:02:00 [output] (裁剪1分钟到2分钟之间的视频)

按比例裁剪:-i [input] -vf crop=in_w/2:in_h/2 [output] (裁剪视频宽高的一半)

添加字幕:

外部字幕:-i [input] -vf subtitles=[subtitle_file] [output]

远程服务器怎么使用ffmpeg?

看什么框架, 什么操作系统了。

一般可以直接system把脚本字符串当做参数处理。这个方法坏处是会开新进程。还有一个方法就是把ffmpeg编译进项目(建议把main函数改成一个可调用的函数)可以写一个service, 里面负责调度ffmpeg, 每一个请求开一个新的ffmpeg解码线程。需要注意的是ffmpeg对内存的需求很高, 所以线程不肯能无限增加。所以需要自己写一个线程池来维护线程数量。超过线程数量的请求会被block知道一个线程释放。这样还是有问题, 因为视频流是长期处理过程, 所以资源有限的情况下是不够处理高并发的。最后一个方法是用nginx rtmp什么的负责多个视频流的连接, 然后就把不同的视频包都扔到同一个线程队列处理,然后解码分发。这样高并发性能也许会好一点, 缺点是可能会出现所有人都卡顿的情况

ffmpeg编译好的怎么用?

FFmpeg在Windows系统下的编译过程,分四步:如下:1. 配置编译环境2. 下载FFMPEG的代码3. 编译,获取FFMPEG库(头文件,lib,和DLL)4. 在VC下配置,测试1. 配置编译环境1)安装MSys下载文件:  bash-3.1-MSYS-1.0.11-snapshot.tar.bz2  msysCORE-1.0.11-20080826.tar.gz解压msysCORE-1.0.11-20080826.tar.gz,比如解压到X:\msys(以下内容都使用该路径描述,X为你安装的盘符)。  解压bash-3.1-MSYS-1.0.11-snapshot.tar.bz2,产生一个名为bash-3.1的目录,在该目录下有一个子目录名为bin,其他的目录不需要关心。复制bin目录中的所有文件到D:\msys\bin,提示是否要覆盖sh.exe的时候,选择是。  到“D:\msys\postinstall”目录下执行pi.bat,在出现的提示中输入n回车后(这个不搞错了),按任意键退出即可。2)安装MinGW

到此,以上就是小编对于“php_使用_ffmpeg”的问题就介绍到这了,希望介绍关于“php_使用_ffmpeg”的【4】点解答对大家有用。

抱歉,评论功能暂时关闭!