首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ffmpeg实现Nginx Live转码

用ffmpeg实现Nginx Live转码
EN

Stack Overflow用户
提问于 2015-03-08 05:58:58
回答 1查看 3.5K关注 0票数 1

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

我在windows上做这件事。我试着用谷歌搜索一下看过的youtube视频。以此类推..但是找不到任何解决方案。所以这就是我目前所拥有的(不能工作)。

在我的nginx.conf中:

代码语言:javascript
复制
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配置中启动它。)

代码语言:javascript
复制
ffmpeg -i rtmp://localhost/code -vcodec flv -acodec copy -s 1280x720 -f flv rtmp://localhost/twitch
pause

现在它只是缩小规模,但这是可以的。因此,这应该是将流发送回我的nginx配置中的"twitch“应用程序。然后nginx会把它流传输给twitch。

但是当我启动ffmpeg bat文件时..我明白了:

我的路到此结束。有人知道怎么做吗?

提前感谢:) Stian

EN

回答 1

Stack Overflow用户

发布于 2017-07-09 13:43:45

您得到rtmp包报头错误的原因是因为它期望在localhost/code之后有一个流键,所以命令应该是

代码语言:javascript
复制
ffmpeg -i rtmp://localhost/code/streamKey -vcodec flv -acodec copy -s 1280x720 -f flv rtmp://localhost/twitch/streamKey

因此,无论您使用的是什么软件,都必须在代码转换之前将整个url提供给您正在使用的编码器。

只需注意,上面的命令不会做任何类型的缩小或更改输出比特率或任何事情。你可能想看看更多的文章,比如this。像这样的东西应该会在缩小比例和代码转换所需的其他东西上指引你到正确的方向。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28920501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档