PHP ffmpeg flv stream Passthru

时间:2013-12-14 18:56:49

标签: php ffmpeg

我正在尝试使用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播放器也看到的。

我在这里缺少什么?

2 个答案:

答案 0 :(得分:1)

好的,所以我终于发现这里出了什么问题,ffmpeg不在www-data用户的路径中,所以我在命令中包含了ffmpeg的路径,现在它可以了!我也喜欢使用ffserver的建议,而不是使用php来做这个,我现在正在努力实现它。

答案 1 :(得分:0)

由于您尝试直接提供项目,因此最好使用ffmpeg服务器。以下是有关如何执行此操作的详细说明的链接: http://www.area536.com/projects/streaming-video/ 希望有效, 〜techdude