我一直在尝试将obs工作室产生的流转换到我的nginx服务器上,并将其发送到youtube。现在我已经让它和抽搐一起工作了,我知道这些设置实际上是正确地转换它的代码,并且是可视的。问题是youtube直播将其作为糟糕的视频设置,并告诉我更改当前的视频容器格式。另一个可能与此无关的副作用是,youtube上的流看起来真的很糟糕。看起来它的传输速度很差,但是真正的问题是糟糕的视频设置错误。
正在使用的ffmpeg命令如下
ffmpeg -i rtmp://localhost/Private/Private1 -vb 6000k -minrate 6000k -maxrate 6000k -bufsize 6000k -s 1280x720 -c:v libx264 -preset faster -r 50 -g 100 -keyint_min 50 -x264opts nal-hrd=cbr:force-cfr=1 -sws_flags lanczos -tune film -pix_fmt yuv420p -c:a copy -f flv -threads 6 -strict normal rtmp://a.rtmp.youtube.com/live2/{key}我尝试过使用不同的框架,谷歌搜索了一段时间,没有发现任何发现,或者错误地解释了一切。不管是哪种方式,我都很乐意在这里得到一些帮助。
系统信息.
互联网.
如果您需要更多的信息,我会很高兴地发送它。感谢您的阅读。
编辑1
在谷歌上搜索了一下我做错了什么之后,我决定尝试稍微改变一下,然后想出了下面的命令
ffmpeg -re -i rtmp://localhost/(app)/(key) -c:v libx264 -r 50 -g 100 -keyint_min 100 -x264opts "keyint=100:min-keyint=100:no-scenecut" -sws_flags lanczos -profile:v baseline -preset veryfast -vb 6000K -minrate 6000k -maxrate 6000k -bufsize 6000k -s 1280x720 -tune film,zerolatency -pix_fmt yuv420p -f flv -c:a copy -ac 1 -strict normal rtmp://(output site)/(output app)/(output key)在我目前的测试中,如果我只直接输出到youtube上,至少会有超过2分钟的健康流。我找到了我的nginx服务器的输出,然后youtube实时中断了一些东西。
我的nginx设置在这个链接https://pastebin.com/siE99Tv8上。
编辑2
如果我把流推到像restream这样的站点上,将其流到youtube上,那么它似乎是起作用了。测试了25分钟,没有改变它们,说坏的视频容器或任何东西。所以我要说,nginx是如何分配文件的部分原因吗?不知道我做错了什么。我敢肯定,至少在这里,不应该怪芬伯。
发布于 2017-07-13 02:49:19
看来YouTube不喜欢nginx。我找到了两种解决方案。
解决方案1
在nginx配置中添加"meta;“如下:
rtmp {
server {
listen 1935;
application youtube{
live on;
meta copy;
push rtmp://a.rtmp.youtube.com/live2/(key);
}
}
}解决方案2
修改nginx-rtmp-模块/ngx_rtmp_codec_module.c并替换行:
ngx_string("Server"),使用
ngx_string("xtradata"),然后重新编译nginx。
https://stackoverflow.com/questions/44992759
复制相似问题