【发布时间】:2013-08-09 12:20:41
【问题描述】:
问题是,我正在尝试(通过 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?还能做到吗?
已更新 - 答案如下
【问题讨论】:
-
先尝试 ffmpeg 本身,然后在获得有效命令后尝试将其集成到您的 PHP 脚本中。如果 ffmpeg 不起作用,则提供您尝试过的命令和完整的控制台输出。