我正在尝试将mp4文件转换为flv,但我得到0个大小的flv文件,
你可以帮我解决这个问题吗?
array(45) { [0]=string(72) "FFmpeg version SVN-r26402, Copyright (c) 2000-2011 the FFmpeg developers" [1]=string(74) " built on Jan 12 2012 16:07:49 with gcc 4.1.2 20080704 (Red Hat 4.1.2-51)" [2]=> string(98) " configuration: --enable-libmp3lame --enable-gpl --enable-libvorbis --disable-mmx --enable-shared" [3]=string(35) " libavutil 50.36. 0 / 50.36. 0" [4]=string(35) " libavcore 0.16. 1 / 0.16. 1" [5]=string(37) " libavcodec 52.108. 0 / 52.108. 0" [6]=string(35) " libavformat 52.93. 0 / 52.93. 0" [7]=string(35) " libavdevice 52. 2. 3 / 52. 2. 3" [8]=string(35) " libavfilter 1.74. 0 / 1.74. 0" [9]=string(35) " libswscale 0.12. 0 / 0.12. 0" [10]=> string(0) "" [11]=string(101) "Seems stream 0 codec frame rate differs from container frame rate: 30000.00 (30000/1) -15.00 (15/1)" [12]=string(106) "Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '16112007069.mp4':" [13]=string(11) " Metadata:" [14]=string(26) " major_brand : mp42" [15]=string(23) " minor_version : 0" [16]=string(35) " compatible_brands: mp423gp4isom" [17]=string(41) " creation_time : 2007-11-16 15:44:57" [18]=string(59) " Duration: 00:00:32.64, start: 0.000000, bitrate: 562 kb/s" [19]=string(115) " Stream #0.0(und): Video: mpeg4, yuv420p, 352x288 [PAR 1:1 DAR 11:9], 512 kb/s, 15 fps, 15 tbr, 30k tbn, 30k tbc" [20]=string(13) " Metadata:" [21]=> string(43) " creation_time : 2007-11-16 15:44:57" [22]=string(62) " Stream #0.1(und): Audio: aac, 16000 Hz, mono, s16, 48 kb/s" [23]=> string(13) " Metadata:" [24]=string(43) " creation_time : 2007-11-16 15:44:58" [25]=string(87) "WARNING: The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s" [26]=string(47) "[buffer @ 0x94a9de0] w:352 h:288 pixfmt:yuv420p" [27]=string(98) "[libmp3lame @ 0x94a9560] flv does not support that sample rate, choose from (44100, 22050, 11025)." [28]=string(85) "Output #0, flv, to '16112007069.flv':" [29]=string(11) " Metadata:" [30]=string(26) " major_brand : mp42" [31]=string(23) " minor_version : 0" [32]=string(35) " compatible_brands: mp423gp4isom" [33]=string(41) " creation_time : 2007-11-16 15:44:57" [34]=string(33) " encoder : Lavf52.93.0" [35]=> string(103) " Stream #0.0(und): Video: flv, yuv420p, 352x288 [PAR 1:1 DAR 11:9], q=2-31, 200 kb/s, 1k tbn, 15 tbc" [36]=string(13) " Metadata:" [37]=string(43) " creation_time : 2007-11-16 15:44:57" [38]=string(68) " Stream #0.1(und): Audio: libmp3lame, 16000 Hz, mono, s16, 0 kb/s" [39]=string(13) " Metadata:" [40]=string(43) " creation_time : 2007-11-16 15:44:58" [41]=string(15) "Stream mapping:" [42]=string(21) " Stream #0.0 -#0.0" [43]=string(21) " Stream #0.1 -#0.1" [44]=string(72) "Could not write header for output file #0 (incorrect codec parameters ?)" } ffmpeg: /usr/local/bin/ffmpeg file path: 16112007069.mp4 srcAR: 16000 srcAB:48 dimention: 352 x 288 destFile: 16112007069.flv
编码部分:: :)
$srcFile = "/file destination/16112007069.mp4";
$destFile = "/file destination/16112007069.flv";
$ffmpegPath = "/usr/local/bin/ffmpeg";
$ffmpegObj = new ffmpeg_movie($srcFile);
$srcWidth = makeMultipleTwo($ffmpegObj->getFrameWidth());
$srcHeight = makeMultipleTwo($ffmpegObj->getFrameHeight());
$srcFPS = $ffmpegObj->getFrameRate();
$srcAB = intval($ffmpegObj->getAudioBitRate());
$srcAR => $ffmpegObj->getAudioSampleRate();
exec($ffmpegPath . " -i " . $srcFile . " -ar " . $srcAR . " -ab " . $srcAB . " -f flv -s " . $srcWidth . "x" . $srcHeight . " " . $destFile . " 2>&1", $output);
var_dump($output);
print "<br />ffmpeg: $ffmpegPath<br />"; print "file path: $srcFile<br
/>"; print "srcAR: $srcAR<br />"; print "srcAB: $srcAB<br />"; print
"dimention: $srcWidth x $srcHeight<br />"; print "destFile:
$destFile<br />";
function makeMultipleTwo ($value) {
$sType = gettype($value/2);
if($sType == "integer")
{
return $value;
} else {
return ($value-1);
}
}
注意我补充道:
if($srcAR<41000){ $srcAR = "41000"; }
以上及其工作!
答案 0 :(得分:0)
测试这个:
ffmpeg -i src.avi -an dest.flv
答案 1 :(得分:0)
试试这个$ ffmpeg -i src.avi dest.flv