视频转码 - php利用ffmpeg转码mp4 时间过长
黄舟
黄舟 2017-04-11 09:07:37
[PHP讨论组]

找了一个ffmpeg支持h264编码的,php调用exec利用ffmpeg转码时间过长,CPU使用率超过80%,问如何解决。
转码命令 另外不知道这里面参数的含义是什么?

$command='..\ffmpeg\bin\ffmpeg.exe -i ' .  $file . '.' . $ext . ' -vcodec libx264 -vprofile main -preset slow -b:v 400k -maxrate 400k -bufsize 800k -vf scale=-1:480 -threads 0 -acodec libvo_aacenc -ab 128k ' .$file . '.mp4';
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
ringa_lee

用七牛来转,或者用队列异步来做

具体命令 man ffmpeg

大家讲道理

php调脚本呗,转码cpu占用本来就高,这个无解。
参数最重要的是 -vcodec libx264 使用x264进行视频编码。
-acodec libvo_aacenc 使用aacenc进行音频编码。

ringa_lee

在 docker 內安裝 ffmpeg, 然後限制 docker 可運行的 CPU 數量.
例子:
docker run -d --cpuset-cpus=1-3 -p 22:22 -p 8082:8082 -v /root/docker/volume/:/dj -it django supervisord

註:
--cpuset-cpus=1-3 
主機有4個CPU. 我只分配 CPU1, CPU2, CPU3 給 docker 使用. CPU0 讓留下來備用.

你的情況,只要分配 2 個CPU就夠用了.

另外, 也可考慮使用 -threads 限CPU數量.
ffmpeg -threads 2 -crf 20 -y -i source.avi -strict experimental sample.mp4

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号