我正在将视频直播到我的服务器上(它在世界上的某个外部位置)。我在这里尝试做的是,我的服务器会将输入代码转换为较低的比特率,然后再将其推送到视频网站,如twitch等。
我在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配置中的"twitch“应用程序。然后nginx会把它流传输给twitch。
但是当我启动ffmpeg bat文件时..我明白了:

我的路到此结束。有人知道怎么做吗?
提前感谢:) Stian
发布于 2017-07-09 13:43:45
您得到rtmp包报头错误的原因是因为它期望在localhost/code之后有一个流键,所以命令应该是
ffmpeg -i rtmp://localhost/code/streamKey -vcodec flv -acodec copy -s 1280x720 -f flv rtmp://localhost/twitch/streamKey因此,无论您使用的是什么软件,都必须在代码转换之前将整个url提供给您正在使用的编码器。
只需注意,上面的命令不会做任何类型的缩小或更改输出比特率或任何事情。你可能想看看更多的文章,比如this。像这样的东西应该会在缩小比例和代码转换所需的其他东西上指引你到正确的方向。
https://stackoverflow.com/questions/28920501
复制相似问题