我找到了这个question,我能够成功将我的视频转换为OGG,但它不包含声音。
以下是代码:
//SET FFMPEG PATH
$ffmpegPath = 'ffmpeg';
//CREATE CLASS INSTANCE
$ffmpegObj = new ffmpeg_movie($video);
//GET AUDIO BITRATE FROM SOURCE FILE
$srcAB = intval($ffmpegObj->getAudioBitRate());
//GET VIDEO BITRATE FROM SOURCE FILE
$srcVB = intval($ffmpegObj->getVideoBitRate());
//SET THE AUDIO CODEC TO LIBVORBIS
$aCodec = ' -acodec libvorbis';
//SET THE VIDEO CODEC TO LIBTHEORA
$vCodec = ' -vcodec libtheora';
//EXECUTE THE CONVERSION
exec($ffmpegPath." -i ".$video.$vCodec." -vb ".$srcVB." -ab ".$srcAB." ".$ogg_video);
我做错了什么?
答案 0 :(得分:1)
您在任何地方都没有在命令行中包含$aCodec
!因此,生成的文件可能最终包含带有不适当编解码器的音频流。
另外,将音频和视频比特率从输入文件复制到输出通常没有意义。特别是,它会为轻度压缩或未压缩的音频/视频输入(例如,动画JPEG,PCM音频等)选择不适当的高比特率。由于您要在视频上强制使用一组新的编解码器,因此可能更适合强制使用单个标准比特率进行音频处理,并根据视频分辨率调整可变比特率。