2011-03-22 549 views
2

当转换一个。FLV文件。MP4我用这个命令:FFMPEG黑屏,声音工作正常

的ffmpeg -i y.mp4.flv -ar 22050 y.mp4

声音是好的,但我没有图像(不在网络播放器&不下载到PC时) 。当我从.mp4抓取“preview.jpg”文件的一些屏幕时,FFmpeg工作正常。 所以我错过了某种编解码器? (我第一次转换视频,而商业软件...)

此外,我想问一下,如果是检测则文件类型更有效的方式:

$video = file_get_contents("www.remotefile.com/1.mp4"); 
if (strpos($video, "flv") !== 0){// FLV, fLV etc 
    file_put_contents($path."1.flv", $video); 
    //further processing 
} 

编辑:IM使用Debian Lenny作为操作系统

+0

你解决了吗? – 2012-04-04 06:29:35

回答

1

您的黑屏问题只能通过查看ffmpeg命令的输出来解决。如果它无法检测到编解码器,它会这样说。如果您使用Debian的ffmpeg,很可能会错过某些格式的支持。

Stream #0.1: Video: unknown // or something like that 

(您的网址错了,它需要一个http://前缀)。通过读出HTTP response headerContent-Type可以最好地实现检测视频类型。但是,使用HTTP库而不是file_get_contents会更容易。

如果你想依靠文件扩展名,然后用这个简单:

if (strrchr($url, ".") == ".flv") { 

或者switch语句。

+0

谢谢,它输出:Stream#0.0:Video:h264,yuv420p,360x240 [PAR 1:1 DAR 3:2],464 kb/s,29.97 tbr,1k tbn,59.94 tbc flv和mp4文件总是包含在文件的某处像mp4,flv,FLV等,我已经做了一些if语句检查。 感谢http标题链接,我会研究一下。 – user671886 2011-03-22 22:24:58

+0

这里完整的ffmpeg转储:http://pastebin.com/2ZwacfcN – user671886 2011-03-22 22:30:17

+0

这看起来没问题。我看不出有什么问题。也许你应该试试另一个版本;您的二进制/发行版中可能仍然存在一个错误。但也尝试编码为一个更简单的格式(例如mpeg)进行测试 – mario 2011-03-22 22:35:41