我使用Laravel9.x运行php 8.1.x。我有一些代码,用于将具有除视频/MP4以外的上下文类型的视频转换为H264格式。其原因是要制作一种与苹果(iOS)、安卓和大多数网络浏览器兼容的视频格式。到目前为止,这段代码在我们使用过的每一个视频上都有效,除了一个视频。我目前的代码是
$ffmpeg = FFMpeg::create();
$video = $ffmpeg->open($videoFilename);
$format = new X264();
$format->setAudioCodec("aac");
$video->save($format, $newFilename);因此,为了调试需要做的其他工作,我开始在我的计算机上手动运行ffmpeg命令,并对该视频的副本进行处理。我终于找到了成功转换视频所需的额外参数,这样它就可以在所有设备上播放。手动命令如下:
ffmpeg -i input.mov -pix_fmt yuv420p -b:v 4000k -c:v libx264 output.mp4我大约90%确信,处理这个视频的具体内容的参数如下:
-pix_fmt yuv420p -b:v 4000 K
我现在的问题是,我不知道我需要对我的php代码进行哪些更改,这相当于那些附加的命令行参数。我还在想,当我输入这个问题时,是否有一种方法可以让我在视频需要这个附加参数时“自动检测”呢?(也许这是第二个帖子/问题)
发布于 2022-10-07 06:41:32
假设您正在使用此包php-ffmpeg/php-ffmpeg
你试过setAdditionalParameters方法了吗?
它会给出这样的东西:
$format->setAdditionalParameters(explode(' ', '-pix_fmt yuv420p -b:v 4000k'));综合解决办法:
$ffmpeg = FFMpeg::create();
$video = $ffmpeg->open($videoFilename);
$format = new X264();
$format->setAudioCodec("aac");
$format->setAdditionalParameters(explode(' ', '-pix_fmt yuv420p -b:v 4000k'));
$video->save($format, $newFilename);https://stackoverflow.com/questions/73980183
复制相似问题