问题是,我正在尝试(通过 php)将 .3gp(或任何视频格式)文件转换为 ogg。
当我没有指定 -vcodec 和 -acodec 时,视频被转换,但没有任何音频。
我已经阅读了此处和其他需要指定 -acodec libvorbis 的地方,但是,当我将编解码器指定为 libvorbis 时,转换失败:视频转换为 0byte 文件。
基本上,我试图确定指定的编解码器是否实际上是我用来缩小问题范围的 ffmpeg 构建的一部分。
产生无声全长视频的代码:
$srcFile = 'anyvideo.3gp';
$destFile = 'anyvideo.ogg';
$ffmpegPath = 'path/to/ffmpeg.exe';
$ffmpegObj = new ffmpeg_movie($srcFile);
$srcWidth = makeMultipleTwo($ffmpegObj->getFrameWidth());
$srcHeight = makeMultipleTwo($ffmpegObj->getFrameHeight());
$srcFPS = $ffmpegObj->getFrameRate();
$srcAB = intval($ffmpegObj->getAudioBitRate()/1000);
$srcAR = $ffmpegObj->getAudioSampleRate();
$srcLen = $ffmpegObj->getDuration();
exec($ffmpegPath." -i ".$srcFile." -ar ".$srcAR." -s ".$srcWidth."x".$srcHeight." ". $destFile);
以及产生 0byte 文件的代码:
exec($ffmpegPath." -i ".$srcFile." -acodec libvorbis -ar ".$srcAR." -s ".$srcWidth."x".$srcHeight." ".$destFile);
所以,我的问题是,如何确定使用 PHP 的 ffmpeg 可用的编解码器?甚至可以做到吗?
更新 - 答案如下