使用ffmpeg进行Nginx Live转码

时间:2015-03-07 21:58:58

标签: batch-file video nginx ffmpeg transcoding

我直播视频到我的服务器(它位于世界某处的外部)。 我在这里尝试做的是,我的服务器会将输入转换为较低的比特率,然后再将其推送到视频网站,如抽搐等等。

我在Windows上这样做。我试图谷歌周围观看youtube视频。等等..但无法找到任何解决方案。所以这就是我现在所拥有的(不工作)。

在我的nginx.conf中:

rtmp {
server {
    listen 1935;
    chunk_size 8192;

    application code {
        live on;

    }

    application twitch {
        push rtmp://live-ams.twitch.tv/app/live_xxxxxxxxxxxxxxxxx;
    }
}

因此,应用程序代码在家中从我的计算机接收流。我使用ffmpeg对其进行转码。

这是我的批处理文件(我必须手动启动。不能在Windows的nginx配置中启动它。)

ffmpeg -i rtmp://localhost/code -vcodec flv -acodec copy -s 1280x720 -f flv rtmp://localhost/twitch
pause

现在它只是降尺度但是没关系。所以这应该将流发送回"抽搐"应用程序在我的nginx配置中。然后nginx将它流动到抽搐。

但是当我启动我的ffmpeg bat文件时......我明白了: enter image description here

所以它在这里我的道路结束了。谁知道怎么做?

提前致谢:) Stian

1 个答案:

答案 0 :(得分:0)

您获取rtmp数据包标头错误的原因是因为它在localhost / code之后需要一个流密钥,因此该命令应该是

ffmpeg -i rtmp://localhost/code/streamKey -vcodec flv -acodec copy -s 1280x720 -f flv rtmp://localhost/twitch/streamKey

因此,无论您使用何种软件,都必须将全部网址提供给您在转码前使用的编码器。

请注意,上面的命令不会进行任何缩减或更改输出比特率或任何内容。您可能需要查看更多文章,例如this。像这样的东西应该指向你在降尺度方面的正确方向以及转码所需的其他东西。