Comments (15)
直接报错退出是比较简单的解决方法,之前因为没有检查视频编码格式出现了内存占用过高崩溃的问题。不支持 HEVC 的原因主要有:
- FLV 文件本身就不支持 HEVC,codec id 12 是**云厂商自己修改定义的,不是写在 FLV 标准里的
- 因此也几乎没有播放器支持
- ffmpeg 也不支持
- 有改过的支持 HEVC FLV 的 ffmpeg 版本
- 比较懒
- 考虑到当时没有二压过的原画只会有 AVC,不支持也无所谓
不支持的原因是录播姬的数据修复部分要解析 FLV 数据进行处理。
现在用的话,修改录制模式为原始数据模式即可录制 HEVC 流。
目前B站 FLV 直播流的稳定性和质量很差,录制效果很不好,之后考虑开发 HLS 录制并作为主要录制方法。
部分直播间的 FLV 流延迟了 2 分钟多(当时看的时候这个直播间没有 HLS 流)。
近期甚至出现了部分直播间只有 HLS 流的情况,虽然怀疑不是故意没有的(因为B站内部上游接口报错了,调用bvc-play-url-one出错
)
开发了 HLS 录制之后输出 m3u8/m4s/mp4 文件,自然也就支持 HEVC 了,不过这个近期应该还做不出来。
关于录制自己的直播:推荐使用 OBS 自带的录制功能,目前B站直播服务器的稳定程度比较差,录制效果不好。
关于 SRT (TS) 推流:目前B站直播使用 OBS SRT 协议推流的时候经常会遇到缺帧的问题,音频视频都会缺,通常是 60 FPS 变成 57-58 FPS。视频会每 1-2 秒顿一下、音频也会同步卡顿一下,遇到之后比较明显,浏览器console里也会有调试信息输出,建议多注意一下。
B站直播姬使用的是B站自己实现的 RTMP-over-SRT 没有这个问题。
from bililiverecorder.
文件结构上区别不大,给录播姬加支持应该不需要太多改动,回头可以改一下试试看。
录出来的视频需要用支持 HEVC FLV 的魔改版 ffmpeg 转封装成 MP4 或其他格式之后才能在播放器里播放。
from bililiverecorder.
- 考虑到当时没有二压过的原画只会有 AVC,不支持也无所谓
- 如上所述,现在的 B 站已经接受直接通过 HEVC 推流,在这种情况下没有二压的原画也将是 HEVC
- 关于录制自己的直播
- 我是为了测试才用录播姬录制的hhh
- 平时是会用 OBS 录制的
- 关于 SRT (TS) 推流
- 这点之前确实是不知道,多谢提醒
你提到 FLV 标准不支持 HEVC,这点我刚刚确实没有考虑到,我以为处理起来就像用 ffmpeg 混流一样简单快速,或至少可以借鉴其他开源项目的代码,没想到 ffmpeg 都不支持;但是既然 B 站直播在使用 HEVC FLV 这种文件,我很好奇实现解析 HEVC FLV 数据的工作量,以及如果工作量不太大,有没有可能在后续版本加入这个特性
P.S. 我倒是想通过PR来做些贡献,奈何我确实不太会C#,只能做伸手党了,十分抱歉
from bililiverecorder.
金山有魔改版的ffmpeg
https://github.com/ksvc/FFmpeg/wiki/hevcpush
from bililiverecorder.
OBS 已支持 HEVC RTMP 推流 obsproject/obs-studio#8522
from bililiverecorder.
OBS 已支持 HEVC RTMP 推流
@cxumol 看了一下 enhanced-rtmp-v1.pdf 和对应的 PR,它的实现方式和目前国内厂商的实现方式不一样(更巧妙更合理一点)
现在国内各云服务商、直播平台 HEVC FLV/RTMP 是直接用 12 作为 video codec id,其他不变。这个是违反标准的(或者说是与标准不兼容的?),也是为什么 ffmpeg 不支持这样搞的原因。
国内各个云服务商、直播平台定义的 HEVC over RTMP 协议和 OBS 新加的、enhanced rtmp 定义的这个协议不兼容。
说回来我认为B站直播现在支持 HEVC 也只是凑巧因为用 SRT 协议推流的时候能推上去,并且现有的直播服务器系统支持它 (比如像 https://github.com/ossrs/srs ),并不是专门作为一个受支持的 use case 实现的。
Tested using FFmpeg as the RTMP server, and FFplay as the client.
目前我看 ffmpeg master branch 里还没有支持 enhanced rtmp,可能是他们还没发布出来或还没被合并。
from bililiverecorder.
2023年3月29日 21点37分 OBS 29.1.0-beta1 HEVC over RTMP 推流侧B站成功,但播放端无法播放,CDN返回404
2023年4月12日 00点56分 OBS 29.1.0-beta3 HEVC over RTMP 推流侧B站成功,但播放端无法播放,CDN返回404
from bililiverecorder.
https://gist.github.com/XueshiQiao/c50fd1f088d431ceb1f59bd4ec40c6d7
from bililiverecorder.
@cxumol 这是直接用 12
作为 HEVC 的 codec id 的,和 OBS 新加的、在 enhanced rtmp 里定义的不是同一个协议。
from bililiverecorder.
支持加一 非常希望尽快采用高效编码节省空间占用 两块8T硬盘空间已经告急了
from bililiverecorder.
支持加一 非常希望尽快采用高效编码节省空间占用 两块8T硬盘空间已经告急了
@Ricky2576 这个issue讨论的是关于录播姬对HEVC直播流的支持的相关问题,和你的需求并不符合。录播姬的原理是从B站抓取直播流、简单处理后直接存储,并不会对进行重新编码,这意味着录播姬以高效编码保存录播的前提是主播以高效编码向B站推流,而目前真正以HEVC推流的主播其实是非常少见的。因此,即使录播姬支持了这个特性,除非你是在用录播姬录制自己的直播,或有能力要求主播改变推流配置,否则这其实并不能节约你的磁盘占用
from bililiverecorder.
支持加一 非常希望尽快采用高效编码节省空间占用 两块8T硬盘空间已经告急了
@Ricky2576 这个issue讨论的是关于录播姬对HEVC直播流的支持的相关问题,和你的需求并不符合。录播姬的原理是从B站抓取直播流、简单处理后直接存储,并不会对进行重新编码,这意味着录播姬以高效编码保存录播的前提是主播以高效编码向B站推流,而目前真正以HEVC推流的主播其实是非常少见的。因此,即使录播姬支持了这个特性,除非你是在用录播姬录制自己的直播,或有能力要求主播改变推流配置,否则这其实并不能节约你的磁盘占用
感谢解释
我了解直播姬不会对视频重新编码 但是我的需求也不是要求直播姬进行重新编码 而同样是"采用高效编码"
- 关于空间占用:
我通过对比带宽和流量间接估计进行过粗略对比 同一直播同分辨率的视频流 HEVC的码率会更低 压缩大约在三成到五成 包括没有二压的原画和1280P分辨率(即所谓的"超清pro")视频流
编码压缩率确实对空间占用没有直接影响 但是叔叔为了节省带宽 会把采用高效编码的视频流的码率压到更低 包括直播和视频 包括av1(不是avc)和hevc的视频流
而如果直播视频流的码率更低 那录制生成文件的空间占用自然会更小 所以 虽然我的需求之一"降低空间占用"不直接和"支持HEVC"相关 但是会从支持受益 - 关于需求
我说"采用高效编码节省空间" 节省空间只是我期望从高效编码带来的益处中的一个 还有更多益处 比如节省带宽 比如新技术的生命周期 只是其他方面我不是特别急迫地需要 所以我并没有提及其他
我提及节省空间 不是想将空间占用和高效编码混为一谈 而是描述我想要录播姬支持HEVC的原因 - 关于直播间支持HEVC情况
我理解目前很少主播以HEVC推流 但是录制直播生成的视频时长通常较长 只要进行录制 在时间累计下三成的压缩率带来的影响也会很大 所以只要录播姬有支持 那么对已经采用hevc的直播间进行录制 就会有很大改善
from bililiverecorder.
1.HEVC直播问题
截止2023年7月20日,b站开播通过srt码,obs推流设置使用main的情况下,调用hvc1.1.2解码器(Nvidia RTX 3060Ti推流HEVC),Chrome不安装微软商店提供的HEVC视频拓展,可以观看直播无问题,但使用main10配置会调用hvc1.2.4解码器,需要安装HEVC视频拓展才可以观看。
Edge无论main或main10都需要安装HEVC视频拓展才能观看。
2.我个人使用HEVC推流 2560x1440 1.8mpbs码率 二次编码1/4 预设P6能获得比AVC编码更好的画质,希望能够添加HEVC录制功能
from bililiverecorder.
FLV codec 12 的可以用录播姬的原始数据模式录,直播服务器发的数据原样写到硬盘。
HLS FMP4 本身原生就支持 HEVC,录播姬之后加了 HLS 支持之后也自然直接就支持 HEVC。现在录 HLS 的话个人推荐是用 https://github.com/acgnhiki/blrec
自己直播自己录的情况强烈推荐使用直播软件自带的录制功能,效果绝对比从B站绕一圈好不知道多少倍。如果有其他限制无法在推流设备上录制,可以考虑自建直播服务器转发一下然后在转发服务器上另存一份文件,效果也会比从B站录要好。
from bililiverecorder.
我这边最近也通过其他信息渠道知晓了使用直播软件自带的录制功能,列如OBS既可以使用HEVC录制也可以使用直播编码器(直播预设),很方便也不吃配置,还能分大小和时间段进行分割文件.
from bililiverecorder.
Related Issues (20)
- 录制结束后产生的临时文件未能转成视频文件存储 HOT 2
- 直播服务器会提供 H.264 Annex B 格式的直播流,分辨率等变动不需要切分文件 HOT 2
- 检测访问环境,如果可能是无密码公网访问就拒绝服务 HOT 3
- 只能录制一个网站太浪费了,建议增加更多直播网站兼容 HOT 2
- 添加 B站cookies刷新机制 HOT 1
- 录制的音频声音不清晰
- 无法显示用户名,每个用户ID都为0 HOT 2
- 直播间信息显示为空,名称只有一个. HOT 1
- 支持其他直播网站 HOT 1
- 添加了--http-open-access参数但是依然不可以公网访问 HOT 1
- 弹幕服务器的连接并没有按照设置走系统代理
- 连接弹幕服务器出错 HOT 1
- Windows-Cli版判断是否为外网访问的逻辑疑似异常 HOT 2
- 请求新增批量录播修复功能 HOT 2
- (配置不当导致?)录制时发生IO错误 解密操作失败,请参见内部异常 HOT 4
- api 实现对于设置的修改 HOT 1
- 添加定时测试“录制画质”是否能达到默认设置的功能 HOT 3
- 不能自动登录 HOT 3
- Windows不兼容?字符导致文件名乱码的问题 HOT 1
- CLI版本使用 "--config-override"指定参数后无法正常初始化默认设置 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bililiverecorder.