作者a34021501 (CARD)
看板Live
标题Re: [心得] 个人实况伺服器与高画质转码
时间Sun Apr 3 21:18:42 2022
来讲一下现在的心得
由於已经有 2160P 的萤幕上市
所以目前跟以前很不一样了吧
那麽我来分享我现在的 nginx rtmp 转码设置
至於以前的软件与现在的软件是否正常
取决於 Kernel 的版本,我也无法多谈
那麽如果你碰到任何奇怪的问题
可以用以下方法尝试解决启动问题
nginx@transcoder:/usr/local/nginx/conf$ killall nginx
nginx@transcoder:/usr/local/nginx/conf$ /usr/local/nginx/sbin/nginx -c
/usr/local/nginx/conf/nginx.conf
当然如果你想要用直播 key 来当关键字
那麽我也可以给一点资讯让各位可以尝试
以下程式码可以将 rtmp://127.0.0.1/live_in/1080pCardLin
转码成 rtmp://127.0.0.1/live_out/720pCardLin
并且禁止其他 IP 来乱搞你的伺服器:
allow publish 127.0.0.1;
deny publish all;
allow play 127.0.0.1;
deny play all;
exec_options on;
exec_push /opt/ffmpeg/bin/ffmpeg -i
"rtmp://127.0.0.1/live_in/$name" -vcodec libx264 -preset veryfast -x264opts
"threads=6:opencl=0:opencl_device=0:partitions=all:aq-mode=2:trellis=2:deblock=-1,-1:rc-lookahead=10:scenecut=10:ref=1:b-adapt=2"
-maxrate 2500k -bufsize 25000k -s 1280x720 -sws_flags lanczos -acodec copy -f
flv "rtmp://127.0.0.1/live_out/720pCardLin"
2>>/usr/local/nginx/logs/ffmpeg-720p-$name.log name=1080pCardLin;
举例到此结束,欢迎发问,有任何问题请直接在下方推文
感谢板
※ 引述《a34021501 (CARD)》之铭言:
: 标题: Re: [心得] 个人实况伺服器与高画质转码
: 时间: Sun May 28 11:30:02 2017
:
: 各位好
:
: 有监於要达到类似YouTube的多编码!
:
: 分享一下720p的转码设定值给大参考
:
: 如果有兴趣还可以做出给手机的360p
:
: 不过我觉得这真的要很小心谨地使用
:
: 因为拥有个人影音播放伺服器可能会 ...被断电(至少我前几天停电周边区域都没停)
:
: 先不管那多了还是直接分享参数好了
:
: 有监於rtmp-nginx-module已有说明!
:
: 所以我们直接分享最重要的关键参数
:
: IP架构如下:
: 192.168.2.22 主要直播伺服器对内IP
: 192.168.2.33 次要直播伺服器对内IP
: 192.168.2.111 个人直播影像处理机IP <- 总之就是用这个来直播给上面两部
:
: 我们先当作192.168.2.33不存在好了
:
: 因为这有可能会侵犯其他公司的IP呢
:
: 这是接收1080FullHD原始画质的设定
:
: 所以要设定以下的参数到你的OBS里!
: rtmp://192.168.2.22/live_in/CardLin
:
: 假设OBS出去的就是1080p不用再转码
:
: 先来描述一下架构由接收伺服器转码
:
: MoreServer
: |
: |
: 111 --1080p--> 22 --720p,1080p--> 33
: | |
: | |
: UserGroup1 UserGroup2
:
: -- nginx.conf -- 192.168.2.22 --
:
: application live_in {
: live on;
:
: allow play 127.0.0.1;
: deny play all;
:
: allow publish 192.168.2.111;
: deny publish all;
:
: drop_idle_publisher 10s;
:
: record off;
:
: # Transcode to 720p
: exec_push /opt/ffmpeg/bin/ffmpeg -i "rtmp://127.0.0.1/live_in/$name live=1" -vcodec libx264 -preset veryfast -x264opts "threads=4:opencl=1:opencl_device=0:partitions=all:aq-mode=2:trellis=2:deblock=-1,-1:rc-lookahead=18:scenecut=18:ref=1:b-adapt=2" -maxrate 2300k -bufsize 23000k -s 1280x720 -sws_flags lanczos -acodec copy -f flv "rtmp://127.0.0.1/720p_live/$name live=1" 2>>/usr/local/nginx/logs/ffmpeg-$name-720p.log;
:
: # Transcode to 1080p
: exec_push /opt/ffmpeg/bin/ffmpeg -i "rtmp://127.0.0.1/live_in/$name live=1" -vcodec copy -acodec copy -f flv "rtmp://127.0.0.1/1080p_live/$name live=1" 2>>/usr/local/nginx/logs/ffmpeg-$name-1080p.log;
:
: }
:
:
: application 720p_live {
: live on;
:
: allow publish 127.0.0.1;
: allow publish 192.168.2.33;
: deny publish all;
:
: record all;
: record_path /path_to_shared_storage/720p;
: recorder allin {
: record all;
: record_suffix 720p-%F-%H-%M-%S.flv;
: }
:
: # Coop Server
: exec_push /opt/ffmpeg/bin/ffmpeg -i "rtmp://127.0.0.1/720p_live/$name live=1" -vcodec copy -acodec copy -f flv "rtmp://192.168.2.33/720p_live/$name live=1" 2>>/usr/local/nginx/logs/ffmpeg-$name-720p-PushToCoop192.168.2.33.log;
:
: # Live Service
: exec_push /opt/ffmpeg/bin/ffmpeg -i "rtmp://127.0.0.1/720p_live/$name live=1" -vcodec copy -acodec copy -f flv "rtmp://127.0.0.1/live_out/720p$name live=1" 2>>/usr/local/nginx/logs/ffmpeg-$name-720p-live_out.log;
:
: }
:
: application 1080p_live {
: live on;
:
: allow publish 127.0.0.1;
: allow publish 192.168.2.33;
: deny publish all;
:
: record all;
: record_path /path_to_shared_storage/1080p;
: recorder allin {
: record all;
: record_suffix 1080p-%F-%H-%M-%S.flv;
: }
:
: # Coop Server
: exec_push /opt/ffmpeg/bin/ffmpeg -i "rtmp://127.0.0.1/1080p_live/$name live=1" -vcodec copy -acodec copy -f flv "rtmp://192.168.2.33/1080p_live/$name live=1" 2>>/usr/local/nginx/logs/ffmpeg-$name-1080p-PushToCoop192.168.2.33.log;
:
: # Live Service
: exec_push /opt/ffmpeg/bin/ffmpeg -i "rtmp://127.0.0.1/1080p_live/$name live=1" -vcodec copy -acodec copy -f flv "rtmp://127.0.0.1/live_out/1080p$name live=1" 2>>/usr/local/nginx/logs/ffmpeg-$name-1080p-live_out.log;
:
: }
:
: application live_out {
: live on;
:
: allow publish 127.0.0.1;
: deny publish all;
:
: record off;
:
: # Turn On optional exec
: exec_options on;
:
: # Condition: name=720pCardLin
: exec_push /opt/ffmpeg/bin/ffmpeg -i "rtmp://127.0.0.1/live_out/$name live=1" -vcodec copy -acodec copy -f flv "rtmp://live-tpe.twitch.tv/app/************************ live=1" 2>>/usr/local/nginx/logs/ffmpeg-$name-PushToTwitch.log name=720pCardLin;
:
: # Condition: name=1080pCardLin
: exec_push /opt/ffmpeg/bin/ffmpeg -i "rtmp://127.0.0.1/live_out/$name live=1" -vcodec copy -acodec copy -f flv "rtmp://a.rtmp.youtube.com/live2/************************ live=1" 2>>/usr/local/nginx/logs/ffmpeg-$name-PushToYouTube.log name=1080pCardLin;
:
: }
:
: --------------------------------
:
: 值得注意的是ffmpeg一定要绝对路径
:
: 当然有人会将720p推送到Twitch网站
:
: 当然也可将1080p推送到YouTube网站
:
: 值得一提的是如果OBS选用GPU编码器
:
: 可以设置到50Mbps传输给直播伺服器
:
: 让直播伺服器压缩到10Mbps以下输出
:
: 谢谢大家
:
: ※ 引述《a34021501 (CARD)》之铭言:
: : 标题: [心得] 个人实况伺服器与高画质转码
: : 时间: Tue Mar 21 04:24:56 2017
: :
: : 各位好,小弟的电脑又被GANK了!
: :
: : 所以来分享一下之前实况的参数!
: :
: : 希望大家可以提升画质增加母数!
: :
: : 毕竟似乎只有一些高画质被GANK!
: :
: : 需要一台空闲不使用的前游戏机!
: :
: : 几乎只有显示卡加速转码画质好!
: :
: : 简单解释一下: CPU CPU CPU CPU v.s. GPU GPU GPU GPU GPU GPU
: : (通常匹配记忆体颗粒的数量)
: : BUT..GPU里面有至少数百个CPU
: :
: : 以我的前显卡Bart为例共960个CPU
: :
: : 而CPU基本上越多核心越适合~转档
: :
: : 硬碟容量就看要不要自己录影留存
: :
: : 接下来将一步一步安装实况转档机
: :
: :
: : 1.安装Linux系统
: : 我是使用Debain8.3.0共13张DVD全部拔县断网安装
: :
: : 如果你不在意网路上自动更新伺服器可以连网安装
: :
: : 总之一定要断网安装後修改/etc/apt/source.list
: :
: : 将里13张ISO档之路径资料夹放进source.list里面
: :
: : deb file:/opt/repo/debian-8.3.0-amd64-DVD-1 jessie main contrib
: : deb file:/opt/repo/debian-8.3.0-amd64-DVD-2 jessie main contrib
: : deb file:/opt/repo/debian-8.3.0-amd64-DVD-3 jessie main contrib
: : deb file:/opt/repo/debian-8.3.0-amd64-DVD-4 jessie main contrib
: : deb file:/opt/repo/debian-8.3.0-amd64-DVD-5 jessie main contrib
: : deb file:/opt/repo/debian-8.3.0-amd64-DVD-6 jessie main contrib
: : deb file:/opt/repo/debian-8.3.0-amd64-DVD-7 jessie main contrib
: : deb file:/opt/repo/debian-8.3.0-amd64-DVD-8 jessie main contrib
: : deb file:/opt/repo/debian-8.3.0-amd64-DVD-9 jessie main contrib
: : deb file:/opt/repo/debian-8.3.0-amd64-DVD-10 jessie main contrib
: : deb file:/opt/repo/debian-8.3.0-amd64-DVD-11 jessie main contrib
: : deb file:/opt/repo/debian-8.3.0-amd64-DVD-12 jessie main contrib
: : deb file:/opt/repo/debian-8.3.0-amd64-DVD-13 jessie main contrib
: :
: : 当然要先把每张ISO光碟之内容物复制进指定资料夹
: :
: : 之後要执行 # apt-get update 指令扫描整个清单
: :
: : 我的意思是若没改清单,预设会连上网扫描云端更新 (有中毒风险)
: :
: : 建议大家装完系统後执行 apt-get install build-essential 即可安装基本的编译器
: :
: :
: : 2.安装 nginx 与 nginx-rtmp-module (即实况转播伺服器的rtmp通讯兵)
: :
: : nginx
: : http://nginx.org/
: : http://nginx.org/download/
: :
: : nginx-rtmp-module
: : http://github.com/arut/nginx-rtmp-module
: :
: : 这部分是最麻烦的,若碰到系统缺少lbrary时会错误 (*1.电脑也要查一下图书馆)
: :
: : 总之缺少library的时候使用 apt-cache search [******] 即可找到相关的图书馆
: :
: : 若找到 ******-dev 就是代表这是一个用於建构你的程式码所需要的图书建议安装
: :
: : 举个例子我常常编译 nginx 时会出现 libssl 的错误 ,我会先输入指令试着搜寻
: :
: : apt-cache search libssl 通常会跳出 libssl-dev 这个图书可以供我安装解问题
: :
: : 即 apt-get install libssl-dev 即可以安装 libssl-dev 然後让我的编译器闭嘴
: :
: : 我好像忘了说编译 nginx with rtmp module 的指令,我觉得我提供的网站更详细
: :
: : 不过我还是说一下,在 nginx 的原始码资料夹下输入以下指令并加入 rtmp-module
: :
: : 不过还是先看一下清单选择一下 nginx-rtmp-module 目前推荐的 nginx 版本较好
: :
: : # mkdir -p /opt/src
: :
: : # cd /opt/src
: :
: : /opt/src# wget http://nginx.org/download/nginx-1.11.5.tar.gz
: :
: : /opt/src# tar -xzf nginx-1.11.5.tar.gz
: :
: : /opt/src# wget http://github.com/arut/nginx-rtmp-module/archive/master.zip
: :
: : /opt/src# unzip master.zip
: :
: : /opt/src# cd nginx-1.11.5/
: :
: : /opt/src/nginx-1.11.5# ./configure --add-module=/opt/src/nginx-rtmp-module-master
: :
: : /opt/src/nginx-1.11.5# make
: :
: : /opt/src/nginx-1.11.5# make install
: :
: : 如果以上安装流程出现任何问题可以在下方推文发问,我会尽可能回答大家的问题
: :
: : 接下来就可以到 /usr/local/nginx/conf/nginx.conf 修改设定档,请参考网页吧
: :
: : 如果想要有不错的连线与流量显示页面可以参考 rtmp-module 中 stat.xsl之用法
: :
: :
: : 3. 安装 libx264 与 ffmpeg (即实况转码伺服器的h264翻译官)
: :
: : x264 (含lib)
: : http://www.videolan.org/developers/x264.html
: :
: : ffmpeg
: : http://ffmpeg.org/
: :
: : 总之先下载最新版的程式码,因为通常x264都是经常在更新保持最佳编码效率与效能兼顾
: :
: : 当然ffmpeg也很重要因为有时候会编码失败通通都是ffmpeg的错!除非你的电脑有稳题!
: :
: : 这次我就不提供详细的解决方案了,我只提供下载路径与编译的方式还有最後要如何用!
: :
: : /opt/src# wget ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
: :
: : /opt/src# tar -xvjf last_x264.tar.bz2
: :
: : /opt/src# wget http://ffmpeg.org/releases/ffmpeg-3.2.4.tar.bz2
: :
: : /opt/src# tar -xvjf ffmpeg-3.2.4.tar.bz2
: :
: : 一定有人问为什麽解压缩的参数不同,因为我也不知道为何tar能解压缩其实还蛮神奇的
: :
: : 总之tar与bz2的关系就像ffmpeg与x264的关系,如果有闲可以去下载tar与bz2的原始码!
: :
: : /opt/src# cd x264-snapshot-20170319-2245/ (*时间流逝可能让路径不同请自行修正)
: :
: : /opt/src/x264-snapshot-20170319-2245# cd ..
: :
: : 为了确保下载到今天的最新版本的 x264 所以我要选择使用另一个方法下载 x264 好吗?
: :
: : /opt/src# git clone http://git.videolan.org/git/x264.git
: :
: : /opt/src# cd x264
: :
: : /opt/src/x264# ./configure --enable-static --enable-shared --enable-lto --enable-strip --enable-pic
: :
: : /opt/src/x264# make
: :
: : /opt/src/x264# make install
: :
: : 说明一下static library与shared library的不同好了,就差在.a是塞进执行档.so放系统
: :
: : 不过通常我都是用 $LD_LIBRARY_PATH 指定要用哪个版本的.so,还可以排PATH的优先顺序
: :
: : 不过一般人如果要将自己的 lib/*.so 列入清单,只要在 /etc/ld.so.conf.d/ 加lib路径
: :
: : 然後执行 ldconfig 就可以更新,而且 /etc/profile.d/ 可以放登入时要执行的系统参数
: :
: : 例如置换 $PATH 与 $LD_LIBRARY_PATH 可以用 export PATH=myPATH:$PATH 让myPATH优先
: :
: : 好了废话讲太多了,不过还可以加在个人的 ~/.bashrc 或 ~/.profile 等相关方式设定之
: :
: : 接下来我们要安装ffmpeg并引入libx264的函式库(图书馆)让ffmpeg可以使用x264压缩编码
: :
: : /opt/src/x264# cd ../ffmpeg-3.2.4/
: :
: : /opt/src/ffmpeg-3.2.4# ./configure --enable-gpl --enable-libx264 --enable-pic --enable-hardcoded-tables -enable-memalign-hack --enable-memory-poisoning
: :
: : (不理新版x264) --extra-ldflags=-static
: :
: : (编不过的参数) --enable-lto
: :
: : /opt/src/ffmpeg-3.2.4# make
: :
: : /opt/src/ffmpeg-3.2.4# make install
: :
: : 基本上就会置换你系统中的 ffmpeg 让它可以用最新版的 libx264 并高画质压缩你的实况
: :
: : ------------------------------------------------------------------------------
: : 以下这三行给有需要很多版本的勇者: (这样就可以把x264直接塞进ffmpeg避免被换掉)
: : /opt/src/ffmpeg-3.2.4# ./configure --help
: : /opt/src/ffmpeg-3.2.4# ./configure --prefix=/opt/ffmpeg-3.2.4_with_current_x264ver#.# --enable-gpl --enable-libx264 --enable-pic --enable-thumb --enable-lto --enable-hardcoded-tables --disable-safe-bitstream-reader --enable-memalign-hack --enable-memory-poisoning --extra-ldflags=-static
: : /opt# ln -s ffmpeg-3.2.4/ ffmpeg
: : 其中--enable-lto旧版gcc应该可以编得过, --enable-thumb好像是ARM的指令及加速160%
: : ------------------------------------------------------------------------------
: :
: : 4.转妈参数设定: (我直接分享我的YouTube与Twitch参数罗)
: :
: : 在分享我的参数之前,请您先使用 ldd ffmpeg 检视图书馆中 libx264 路径是否正确无误
: :
: : -twitch_720p.sh---------------------------------------------------------------
: : !#/bin/sh
: : ffmpeg -i rtmp://127.0.0.1/live_in/CardLin -vcodec libx264 -preset veryfast -x264opts "qp=25:keyint=100:min-keyint=100:threads=4:opencl=1:opencl_device=0:partitions=all:aq-mode=2:trellis=2:deblock=-1,-1:rc-lookahead=25:scenecut=25:ref=1:b-adapt=2" -maxrate 2300k -bufsize 23000k -s 1280x720 -r 50 -force_fps -sws_flags lanczos -acodec copy -f flv rtmp://127.0.0.1/twitch_live_out/CardLin -rtmp_buffer 30000 -rtmp_live live
: : ------------------------------------------------------------------------------
: :
: : -youtube_1080p.sh-------------------------------------------------------------
: : !#/bin/sh
: : ffmpeg -i rtmp://127.0.0.1/live_in/CardLin -vcodec libx264 -preset veryfast -x264opts "qp=25:keyint=100:min-keyint=100:threads=8:opencl=1:opencl_device=0:partitions=all:aq-mode=2:trellis=2:deblock=-1,-1:rc-lookahead=25:scenecut=25:ref=1:b-adapt=2" -maxrate 8000k -bufsize 80000k -s 1920x1080 -r 50 -force_fps -acodec copy -f flv rtmp://127.0.0.1/youtube_live_out/CardLin -rtmp_buffer 30000 -rtmp_live live
: : ------------------------------------------------------------------------------
: :
: : 分析一下:这两个是画质还不错的低码率动态码率参数!以下是你有可能会更改的数据!
: : threads=8 //执行序数量,建议最多为实体核心数*1.5
: : opencl=1 //是否开启OpenCL加速,建议一定要开启
: : opencl_device=0 //设定OpenCL装置编号 (多张GPU才有效)
: : keyint, min-keyint = 100 //FPS等级的keyframe_interval, 建议2秒即
: : r 50 //FPS设定成50
: : s 1920x1080 //画面宽长大小
: : sws_flags lanczos //使用lanczos的方法降低解析度
: :
: : 好啦,今天就分享到这边了,聪明的你应该有发现127.0.0.1可以改成其他电脑的IP位址
: :
: : 如果你有多部旧电脑的话就可以用全部的电脑效能一起做出和大型网站一样多种解析度!
: :
: : 再提供两个指令给大家自己查询要如何使用ffmpeg与如何搭配libx264的"..."内设定值!
: :
: : $ ffmpeg --help full
: :
: : $ x264 --fullhelp
: :
: : 总结就是我会把我的OBS的rtmp网址设为实况伺服器,然後输出25Mbps以上的高画质!
: :
: : 然後再到我的实况伺服器或其他的子伺服器输入指令以转码并输出到不同的实况网站中!
: :
: : 可以在 nginx 设置 push 到实况网站,当然你要 push 到另一个实况伺服器当分流也可~
: :
: : 所以基本上大家可以参考一下转出来的流量有多宽再决定要投放到哪个区域的实况网站!
: :
: : 补充一下OBS的设定好了,可以用"使用装置时间戳记"的320kbps,44100hz音质会较好!
: :
: : --
: :
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.164.252.34
: : ※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Live/M.1490041511.A.C4D.html
: : 跟大家开个玩笑,所以修改了内容,其实我只是在比拟通讯兵责任较轻,翻译官要负责!
: : ※ 编辑: a34021501 (1.164.252.34), 03/21/2017 04:42:55
: : 推 wyiwyi: 推一下 03/21 06:50
: : → a34021501: http://times.hinet.net/times/news/20080824 今天新闻 03/21 19:52
: : → a34021501: 有提到git之内容可能下载到不当的内容,所以台湾的电信 03/21 19:53
: : → a34021501: 业者针对http提供TranspartentProxy可有效防范下载失败 03/21 19:55
: : → a34021501: http://i.imgur.com/fo6uLQv.jpg 我的Google对TP的见解 03/21 20:01
: : ※ 编辑: a34021501 (1.164.252.34), 03/21/2017 21:33:45
: :
: : 来讲一下压缩参数好了,不过我不是开发人员,我所知道的都是我在网路上搜寻到的结果
: :
: : 首先讲一下压缩时的 I P B 三种 frame!! 在时间的流逝就像 IBBPBBPBBIBBPBBPBBI....
: :
: : 讲白了 I 最重要! P 次要! B 普通! 说普通就是因为如果 B 的品质差画面也会很差
: :
: : 所以重点是 I frame 已经固定了,反正我也不知道以後的 x264 如何定义 I frame间距
: :
: : 不过那不重要,重要的是 P frame 是由 I frame 搭配一些参数计算而成的预测未来画面
: :
: : 我要说未来是因为那个未来是 I 的未来,但 P 其实是要与真实的未压缩影像匹配算参数
: :
: : 总而言之在你看到 IPB 这三种 frame 出现在你的萤幕上的时候,代表那是以前发生的事
: :
: : 好了,现在来提一提 B frame 其实可以定义 bframe=0 关掉所有 B 就是只有 IP 这两种
: :
: : 总之建议你不要设定 bframe=0 因为我加了 b-adapt=2 就是 Adaptive BFrame decision
: :
: : 再来就是我最喜欢的 trellis2 让影像压缩使用全模式的 decision 使整个压缩效率增加
: :
: : 然後再来是我觉得应该这些参数都应该预设开启可是不知道为什麽没有开可能我没很懂吧
: :
: : 先来说说 weightp 好了,因为 B 通常夹在两个 P 中间,所以 B 是由 P 经过向量计算!
: :
: : 我还是没讲 weightp 因为我真的不太懂,不过看手册的意思大概是有些P重要有些不重要
: :
: : 所以就以这 weight 比重来计算出要用哪个 P 参考较多,哪个 P 参考较少,画质会变好
: :
: : 反正 I 还是最重要,毕竟 P 是由 I 计算而成,所以 me 与 subme 有很多种模式可以调
: :
: : 但我建议还是保留预设值,因为通常调高之後但脑会无法负荷而无法正常实况例如没画面
: :
: : 至於 aq-mode 似乎是用於评估上面这些参数及压缩後的影像是否满足我们设定的 qp=25
: :
: : 总之 aq-mode = 2 是我玩一些明亮游戏时用的参数, aq-mode = 3 是我玩恐怖游戏所用
: :
: : 毕竟 aq-mode = 3 有考虑黑暗场景,所以我还是设成 aq-mode = 2 好了压缩率应该较高
: :
: : 至於 weightp 我还是觉得怪怪的所以我先设为 veryfast preset 的预设参数即不复制图
: :
: : 毕竟经过了一段时间,这张图像如果还一样我觉得真的要考虑是否有画面定格的情况发生
: :
: : 以上是我个人的理解,并且我其实不明白 x264 与 ffmpeg 的搭配与组合似乎有点很复杂
: :
: : 我的意思是说 ffmpeg 有很多种不同版本,而且还附上不同的 resize 程式码让我好难选
: :
: : 因为我从 3840x2160 解析度降到 1920x1080 的之後还要再降到 1280x720 字体有点模糊
: :
: : 我可能还要再花点时间查询一下是否有包含增强边缘的 Edge Detection Resize Method!
: :
: : 总之这样应该可以非常低流量又可以有很清晰的字体,变更解析度似乎是 ffmpeg 的责任
: :
: : 等我研究出来再跟大家分享,今天先分享到这了!感谢大家的支持!记得用 qp 调整画质
: :
: : qp 数值越低越接近原始图片,但我觉得如果原始图片很糟糕就让 qp 增加也没甚麽感觉!
: : ※ 编辑: a34021501 (1.164.252.34), 03/22/2017 03:18:24
:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.229.32.195
: ※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Live/M.1495942204.A.996.html
:
: 感谢来信询问有关RTMP传输中断的情况,目前我是用OBS Classic 0.659b
:
: 我最近也有遭遇的相同的情况,以下是我的实况主机详细编译参数及流程
:
: ~$ su
: Password:
:
: # cd /opt
: # mkdir src
: # cd /opt/src
:
: /opt/src# wget
: ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20170320-2245.tar.bz2
: /opt/src# tar -xvjf x264-snapshot-20170320-2245.tar.bz2
: /opt/src# cd x264-snapshot-20170320-2245
: /opt/src/x264-snapshot-20170320-2245# ./configure --enable-static --enable-shared --enable-lto --enable-strip --enable-pic
: /opt/src/x264-snapshot-20170320-2245# make
: /opt/src/x264-snapshot-20170320-2245# make install
:
: /opt/src# wget http://ffmpeg.org/releases/ffmpeg-3.2.4.tar.gz
: /opt/src# tar -xzf ffmpeg-3.2.4.tar.gz
: /opt/src# cd ffmpeg-3.2.4
: /opt/src/ffmpeg-3.2.4# ./configure --prefix=/opt/ffmpeg-3.2.4 --enable-gpl --enable-libx264 --enable-pic --enable-hardcoded-tables -enable-memalign-hack --enable-memory-poisoning
: /opt/src/ffmpeg-3.2.4# make
: /opt/src/ffmpeg-3.2.4# make install
: /opt/src/ffmpeg-3.2.4# ln -s /opt/ffmpeg-3.2.4 /opt/ffmpeg
:
: 基本上这样的参数在使用exec_push的时候应该就不会出现buf异常的情况
:
: 基本上这样的设置在 debian 8.3.0 内建的 gcc4.9.2 还算稳定且效率高
: ※ 编辑: a34021501 (1.171.20.188), 05/30/2017 16:58:47
: → a34021501: 这次参数拿掉qp=25, 因为新版预设的qp已完美地最佳化! 05/30 17:12
: → a34021501: 有人来信提问static与shared的差异,执行static执行档 05/30 19:46
: → a34021501: 时不需要libx264.so的函式库,可以避免libx264被换掉.. 05/30 19:47
: → a34021501: 但shared的好处是更新x264的版本後不用重新编译ffmpeg 05/30 19:49
: → a34021501: 只要执行ldconfig就能更新系统预设路径下的函式库清单 05/30 19:50
: → a34021501: 而使用ldd /opt/ffmpeg/bin/ffmpeg可检查执行档的清单 05/30 19:51
: → a34021501: 如果担忧系统被恶搞,可以用ldconfig -p检查所有函式库 05/30 19:52
: 更新合作伺服器直播参数,因为有 RTMP bug 所以通通使用 exec_push 避免发生传输异常
: 另外值得注意的是可用直播时所选用的参数名称决定是否要推送影音串流至更多的伺服器~
: 如此一来这样的设定还可分隔内部的 np_live 转档与储存系统以及外部的 live_out 服务
: 遭受外部网路攻击 live_out 时,内部的 np_live 不至於被立即瘫痪而失去影音串流存档
: ※ 编辑: a34021501 (1.171.20.188), 05/31/2017 10:48:16
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.136.68.20 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Live/M.1648991925.A.DDA.html
1F:推 CardLin: 我都用显卡或内显得GPU Encoder打80Mbps到我的转码伺服器 04/03 21:29
2F:→ CardLin: 的 (typo) 04/03 21:31