bilibili_danmaku icon indicating copy to clipboard operation
bilibili_danmaku copied to clipboard

小白,请问配置文件错误怎么弄?不知道哪里有问题

Open snfcx opened this issue 2 years ago • 9 comments

{
    "version": "0.0.20",

    "ffmpeg_path": "ffmpeg/",
    "#ffmpeg_path": "ffmpeg所在的路径,例如ffmpeg位于tool文件夹下",

    "output_path": "video/",
    "#output_path": "视频存放路径,例如存放在video文件夹下",

    "video_bitrate": "32M",
    "#video_bitrate": "视频流比特率,按照ffmpeg接受的格式输入",

    "audio_bitrate": "320K",
    "#audio_bitrate": "音频流比特率,按照ffmpeg接受的格式输入。如果需要输出原始音频流,请设置为copy",

    "decoder": "nvdec",
    "#decoder": [
        " 视频的硬件解码器类型,可能的值有",
        " none (不使用硬件解码器) , nvdec (nvidia gpu), qsv (intel gpu), dxav2 (仅用于windows), d3d11va (仅用于windows) ",
        " 注意,这些值并未经过广泛测试,且不建议采取其他值(如:不支持cuda)"
    ],

    "encoder": "hevc_nvenc",
    "#encoder": [
        " 视频的软/硬件编码器类型,可能的值有",
        " hevc_nvenc (nvidia gpu h265), h264_nvenc (nvidia gpu h264)",
        " h264_amf (amd gpu h264), hevc_amf (amd gpu h265), libx264 (cpu h264 软件编码), libx265 (cpu h265 软件编码)",
        " h264_qsv (intel gpu h264), hevc_qsv (intel gpu h265) 等。",
        " 或者您可以选择一个ffmpeg接受的编码器"
    ],

    "extra_encoder_info": [ ""
    ],
    "#extra_encoder_info": [
        "您希望传递给编码器的额外信息,例如您可能想要调整预设,如果您想传递的参数为 `-preset 15` 需要这样做:",
        ["-preset", "15"],
        "每个字段用空格隔开即可。如果您不想传递额外信息,保持上面的项目不变即可。"
    ],

    "extra_input_stream_info": "",
    "#extra_input_info": [ "额外的ffmpeg输入流选项,可用于实现水印、裁剪、缩放等高级功能",
        "详见https://github.com/windowsair/bilibili_danmaku/blob/master/doc/live_render_custom_feature.md",
        "如果您不想传递额外信息,保持上面的项目不变即可。"
    ],

    "extra_filter_info": "[v0]hwupload_cuda[v1];[v1]scale_cuda=2564:1442:interp_algo=bicubic[v]",
    "#extra_filter_info": [ "额外的ffmpeg filter选项,可用于实现水印、裁剪、缩放等高级功能",
        "详见https://github.com/windowsair/bilibili_danmaku/blob/master/doc/live_render_custom_feature.md",
        "如果您不想传递额外信息,保持上面的项目不变即可。"
    ],

    "segment_time": 0,
    "#segment_time" : "视频切片长度(以秒计),0表示不切片",

    "ffmpeg_thread_queue_size": 20000,
    "#ffmpeg_thread_queue_size": "拉流线程队列大小,一般不调节此项。详见FAQ",

    "render_thread_queue_size": 64,
    "#render_thread_queue_size": "渲染线程队列大小,详见FAQ",


    "post_convert": true,
    "#post_convert": "是否在录制结束后自动将格式转换为faststart形式(faststart可以加快视频加载的时间)",

    "use_custom_style": false,
    "#use_custom_style": [ "是否使用自定义的ASS样式。(谨慎使用)",
        "设置为true后,将读取相同目录下的custom_style.ass文件", "每一行弹幕对应一个样式",
        "如第一行弹幕对应Danmu1, 第二行对应Danmu2,以此类推。"
    ],

    "font_family": "微软雅黑",
    "#font_family": "采用的字体集",

    "font_scale": 1.8,
    "#font_scale": "字体缩放倍数,为1.0时保持原始大小(基础字号为25)",

    "font_alpha": 0.7,
    "#font_alpha": "字体不透明度,取值为0~1.0,为0时完全透明",

    "font_alpha_fix": false,
    "#font_alpha_fix": [ "为false时,采用默认的alpha混合策略(速度优先)。弹幕可能变暗,尤其是当不透明度小于0.6时",
        "为true时,采用符合自觉的alpha混合策略(质量优先),但是会降低渲染速度",
        "根据对渲染效果和渲染速度的要求选择合适的项目。"
    ],

    "font_bold": true,
    "#font_bold": "是否设置字体加粗,true加粗,false不加粗",

    "font_outline": 0.6,
    "#font_outline": "字体描边(边框)值",

    "font_shadow": 0.0,
    "#font_shadow": "字体阴影值",

    "danmaku_show_range": 0.5,
    "#danmaku_show_range": "弹幕在屏幕上的显示范围,取值为0~1.0,为1时全屏显示",

    "danmaku_move_time": 12,
    "#danmaku_move_time": "滚动弹幕的停留时间(以秒计)",

    "danmaku_pos_time": 0,
    "#danmaku_pos_time": "固定弹幕的停留时间(以秒计),为0时忽略固定弹幕",

    "danmaku_lead_time_compensation": -6000,
    "#danmaku_pos_time": [ "弹幕超前补偿时间(以毫秒计)", "注意将您的本机时间与北京时间同步",
        "该值必须小于等于0", "当该值的绝对值越大时,弹幕越后出现",
        "例如-7000的弹幕将比-6000的弹幕更晚出现"
    ],

    "vertical_danmaku_strategy": 2,
    "#vertical_danmaku_strategy": [ "竖版弹幕处理策略", "0不处理",
        "1直接丢弃所有竖版弹幕", "2将竖版弹幕转为横版弹幕"
    ],

    "verbose": 0,
    "#verbose": [ "控制台输出等级设定", "0为默认输出", "1屏蔽所有ffmpeg输出", "2屏蔽所有弹幕信息输出",
       "3屏蔽所有ffmpeg和弹幕信息输出", "4屏蔽所有一般统计信息", "5屏蔽所有ffmpeg和一般统计信息输出",
       "6屏蔽所有统计信息和弹幕信息输出", "7屏蔽所有ffmpeg、弹幕信息和一般统计信息输出"
    ],

    "bilibili_proxy_address": "",
    "#bilibili_proxy_address": "bilibili的代理地址,仅用于获取直播流地址。如果您不清楚这是做什么的,不要修改此项。例子: https://api.live.bilibili.com/",


    "adjust_input_video_width": 0,
    "#adjust_input_video_width": [ "重新调整原始直播源视频的宽度,如果不需要调整,设置为0即可",
        "在一般情况下,live_render会使用FFmpeg中的scale对原始直播源视频的尺寸进行调整。",
        "特别地,如果原始直播视频源是一个竖版视频,而此处设置的调整后的视频为横版视频,",
        "live_render将尝试先在原始直播源视频上添加黑边,然后再调整为相应的视频尺寸。",
        "这一特性可以用于将720P的竖版直播视频转换为1080P的横版视频",
        "随意调整此项,可能会影响性能"
    ],

    "adjust_input_video_height": 0,
    "#adjust_input_video_height": [ "重新调整原始直播源视频的高度,如果不需要调整,设置为0即可",
        "随意调整此项,可能会影响性能"
    ],

    "adjust_input_video_fps": 0,
    "#adjust_input_video_fps": [ "重新调整原始直播源视频的帧率,如果不需要调整,设置为0即可",
        "如果设置了此项,会使用FFmpeg中的fps filter对原始直播源视频的帧率进行预调整",
        "随意调整此项,可能会影响性能"
    ],

}

image image image

文件结构如图

snfcx avatar Dec 17 '22 05:12 snfcx

稍等,我一会儿看一下

windowsair avatar Dec 17 '22 05:12 windowsair

倒数第二行多打了一个逗号,删掉即可。文档中这里有问题,我修改一下

    "adjust_input_video_fps": 0,
    "#adjust_input_video_fps": [ "重新调整原始直播源视频的帧率,如果不需要调整,设置为0即可",
        "如果设置了此项,会使用FFmpeg中的fps filter对原始直播源视频的帧率进行预调整",
        "随意调整此项,可能会影响性能"
    ], //删除此处的逗号
}

windowsair avatar Dec 17 '22 06:12 windowsair

倒数第二行多打了一个逗号,删掉即可。文档中这里有问题,我修改一下

    "adjust_input_video_fps": 0,
    "#adjust_input_video_fps": [ "重新调整原始直播源视频的帧率,如果不需要调整,设置为0即可",
        "如果设置了此项,会使用FFmpeg中的fps filter对原始直播源视频的帧率进行预调整",
        "随意调整此项,可能会影响性能"
    ], //删除此处的逗号
}

感谢解答!刚在测试正在直播房间没有问题,一切正常。 可当我准备好录未开始的直播间时,程序正常提示等待直播中,当直播开始时 1.我看到控制台不断弹出以下字段一直不停,不知道如何解决。 S28_S YSA )B06(X~X)HNVQ 2.不知道程序将来是否支持录制fmp4的流听说这个流更稳定(也发现程序本身比开了fmp4的流更能多记录3秒左右的开头) 3.希望支持在不中断录制的情况下进行切段操作(原因是中断了录制到的就是二压过的原画非常难受。)

snfcx avatar Dec 17 '22 11:12 snfcx

  1. 这个提示是直播流中的时间戳不匹配。可以忽略这个警告

  2. fmp4流指的是什么?开了fmp4的流指的是什么?

  3. 以下配置是想要的功能吗?

    "segment_time": 0,
    "#segment_time" : "视频切片长度(以秒计),0表示不切片",

或者也可以使用losslesscut等工具,在直播过程中直接对输出的文件进行切片,无需中止录制

windowsair avatar Dec 17 '22 12:12 windowsair

  1. 这个提示是直播流中的时间戳不匹配。可以忽略这个警告
  2. fmp4流指的是什么?开了fmp4的流指的是什么?
  3. 以下配置是想要的功能吗?
    "segment_time": 0,
    "#segment_time" : "视频切片长度(以秒计),0表示不切片",

或者也可以使用losslesscut等工具,在直播过程中直接对输出的文件进行切片,无需中止录制

1.有这个提示我录制完成后大小有17G,我用pot播放器打开很慢大概半分钟才加载出画面。不知道是不是这个原因 2.fmp4是b站直播的另一种流,比普通的更加稳定一些,缺点就是会丢失开播前几秒的画面。图是另一个项目blrec设置里对fmp4的介绍。 今天我同时用这个工具与blrec调到fmp4测试发现blrec比本工具少了3秒左右的开头(fmp4流的缺点)

snfcx avatar Dec 17 '22 14:12 snfcx

  1. 不是,这个FAQ里面有写
Q: 为什么输出的视频文件打开很慢/无法拖动进度条/帧率明显不对?

A: 这是因为设置了empty_moov。经过ffmpeg简单转换为faststart即可。

ffmpeg -i input.raw.mp4 -c copy -movflags faststart output.mp4
  1. 说的应该是HLS流吧?这个我调查一下,之前实测是很不稳定的

windowsair avatar Dec 17 '22 14:12 windowsair

QEF)3R6H4 S}G}7JS8L0)@L(1) 3.这个并不是想要的功能,定时不能灵活根据直播内容手动切片。 我有在用losslesscut,这是一个很不错的解决办法。但是之前都是录制1080P所以文件很小。 我发现这个软件可以输出4K的选项它很好用,我用它来规避上传稿件时的二压。但这导致我的硬盘有点吃不消,所以切片功能可以很好的让我分段上传后马上删除已投稿的内容以确保有足够的空间。 这个功能痛点不是很大,如果有计划开发新功能希望锦上添花。

之前有在其他问题上看到过伪4k与ai超分,听说ai超分效果更好,不懂这些怎么实现的如果可以的话也希望加入计划中。(如果要很长很长的渲染时间就算了) 这个软件功能的功能很不错,有很多新东西在里面而不是重复造轮子,感谢作者的开发!致敬。

snfcx avatar Dec 17 '22 14:12 snfcx

  1. 不是,这个FAQ里面有写
Q: 为什么输出的视频文件打开很慢/无法拖动进度条/帧率明显不对?

A: 这是因为设置了empty_moov。经过ffmpeg简单转换为faststart即可。

ffmpeg -i input.raw.mp4 -c copy -movflags faststart output.mp4
  1. 说的应该是HLS流吧?这个我调查一下,之前实测是很不稳定的

1.原来如此,有计划加入配置文件中结束时自动转换吗很方便。 2.我也不太清楚在其他录播评论区中,似乎都说这个比普通的好。那就先用着看看等待一个b站服务器崩的时间看看,有问题再反馈。 作者辛苦了!

snfcx avatar Dec 17 '22 14:12 snfcx

  1. 很早的时候就考虑过这个,但是在实际的使用过程中,发现各录播组都会在输出文件的头尾用losslesscut各剪一刀再导出,相当于进行了这个转换过程。后来就没考虑过这个了,后续的话应该也不会加入这个。

3.1 关于指定位置切一刀,这个不是我不想做,是目前ffmpeg似乎没有比较好的方法实现这个功能。

3.2 关于AI超分,短期内可能不会添加这个功能,因为实在是太耗资源了,机器吃不消。

windowsair avatar Dec 17 '22 14:12 windowsair