ffmpeg - FFMPEG & YouTube Live - “Bad Video Settings” - 请使用 4 秒或更短的关键帧频率
问题描述
尝试在 YouTube 上直播,从我的角度来看,一切似乎都运行良好。但是 YouTube 不断给我以下信息:
错误的视频设置
请使用四秒或更短的关键帧频率。目前,关键帧的发送频率不够高,这将导致缓冲。当前关键帧频率为 8.4 秒。请注意,摄取错误可能会导致不正确的 GOP(图片组)大小。
我已经挖了几个小时,到目前为止似乎没有任何区别。我添加了-g 60并且由于我不完全理解,我也尝试添加-g 2但都没有奏效。这是我目前正在使用的命令:
ffmpeg -re -f concat -safe 0 -i "concat.txt" -c copy -preset veryfast -maxrate 1200k -bufsize 2400k -framerate 30 -g 60 -f flv rtmp://a.rtmp.youtube.com/live2/XXXX-XXXX-XXXX-XXXX
解决方案
您的选择是忽略警告或重新编码。
因为您启用了流复制模式 ( -c copy
),所以您的选项-maxrate 2048k -bufsize 4096k -framerate 30 -g 2
将被忽略。流复制时不能使用编码选项。这就是为什么他们没有任何区别。
如果要重新编码 remove -c copy
。该-g
选项应该大约是您的输出帧速率的 2 倍到 4 倍,因此-g 60
如果您的帧速率为 30。如果您想出于任何原因修改帧速率,请使用-r
,而不是-framerate
某些解复用器的输入选项。
尽管用户经常添加它,但您实际上并不需要它,-strict experimental
因为您没有使用任何实验性功能。
推荐阅读
- reactjs - 使用 React 中的 props 将图像和锚标记添加到数组中的元素
- java - 查找数组中的 K 个最小元素
- javascript - Array.map / 过滤一个连续的数组,然后将其重新排序为连续的
- amazon-web-services - 适用于 Amazon Elasticsearch 的 EBS 存储
- google-sheets - Google表格:选择要在查询中选择的列
- pyspark - Pyspark:如何解决复杂的数据帧逻辑加连接
- winapi - NtAllocateVirtualMemoryEx 定义
- c# - 如何检索与基于使用 Excel 互操作引用另一个 Excel 工作表的公式的 Excel 单元格关联的值?
- php - VueJS 使用 axios 将图像传递给存储数据库,如果成功则将数据传递给 phpMyadmin
- awk - 如何从列中找到最大值