Php 减少ffmpeg转换视频的文件大小

Php 减少ffmpeg转换视频的文件大小,php,ffmpeg,Php,Ffmpeg,我有一个.mp4视频,文件大小为540kb,转换前的持续时间为30秒,但使用ffmpeg将其转换为21mb。为了将文件大小减小到1mb以下,我需要添加哪些选项 我现在正在使用的ffmpeg命令: video_filename = __DIR__. '/uploads/VID.mp4'; exec('ffmpeg -i '.$video_filename.' -c:v libx264 '.$video_filename.''); 在所需位置创建tmp_目录 exec('ffmpeg -i '

我有一个.mp4视频,文件大小为540kb,转换前的持续时间为30秒,但使用ffmpeg将其转换为21mb。为了将文件大小减小到1mb以下,我需要添加哪些选项

我现在正在使用的ffmpeg命令:

video_filename = __DIR__.  '/uploads/VID.mp4';

exec('ffmpeg -i '.$video_filename.' -c:v libx264 '.$video_filename.'');

在所需位置创建tmp_目录

exec('ffmpeg -i '.$video_filename.' -c:v libx264 -crf 25 tmp_dir'.$video_filename.'');
exec('rm -rf '. $video_filename);
exec('mv tmp_dir/'.$video_filename.' ..');

我希望它能正常工作,我还没有测试过它

尝试添加-crf{number},较高的数字=较低的质量:exec'ffmpeg-i'.$video\u filename.-c:v libx264-crf 25'.$video\u filename@NedkoDimitrov如何替换现有文件?例如,文件名是video.mp4,输出名也是video.mp4?如何替换现有文件?我想替换原始文件,但当我使用命令时,文件不会被替换Git不可能直接覆盖现有文件。您需要将输出临时存储在其他位置或重命名它。覆盖输入文件将截断并损坏输入文件,从而导致输出文件损坏@NedkoDimitrov如何正确覆盖文件?