PHP ffmpeg flv stream Passthru


PHP ffmpeg flv stream Passthru

我正在尝试使用ffmpeg将mpeg2流转码为x264 flv流,并通过php将其传递给flash播放器。我的ffmpeg命令在命令行中运行良好,但当我将其封装在php的passthru()函数中时,php不会输出任何内容(从浏览器或我使用的flash播放器)。

我的代码是:

header('Content-type: video/x-flv');
passthru('ffmpeg -y -i http://192.168.0.199:5004/auto/v10 -threads 0 -f flv -vf yadif,scale="iw/2*sar:ih/2" -pix_fmt yuv420p -c:v libx264 -preset:v ultrafast -b:v 1000k -c:a libmp3lame -ac 2 -b:a 32k -ar 11025 -strict -2 /dev/stdout 2>/dev/null');`

当我使用php -f test.php从命令行运行php文件时,或者当我从命令行仅运行ffmpeg命令时,这就起作用了。在浏览器中,头被发送,但没有其他内容,我想这也是flash播放器看到的。

我在这里错过了什么?

好吧,所以我终于发现这里出了问题,ffmpeg不在www数据用户的路径中,所以我在命令中包含了ffmpeg的路径,现在它可以工作了!我也喜欢使用ffserver的建议,而不是使用php来实现这一点,我现在正在努力实现它。

由于您试图直接为项目提供服务,因此最好使用ffmpeg服务器。以下是关于如何做到这一点的精彩描述的链接:http://www.area536.com/projects/streaming-video/希望能奏效,~技术型