ffmpeg - ffmpeg“蒸汽”cbr gop
问题描述
这是关于将视频实时流式传输到 STEAM... 使用 ffmpeg
我有这个命令
ffmpeg -re -i file-from-webcam.webm -deinterlace
-c:v libx264 -pix_fmt yuv420p -preset veryfast
-tune zerolatency -c:a aac -b:a 128k -ac 2 -strict -2 -crf 18
-r 30 -g 60 -vb 1369k -minrate 1369k -maxrate 1369 -ar 44100 -x264-params "nal-hrd=cbr"
-vf "scale=1280:720" -profile:v main
-f flv "rtmp://ingest-rtmp.broadcast.steamcontent.com/app/steam_...."
但几秒钟后,流停止并且蒸汽日志显示
Make sure your upload key-frame interval is set to 2 seconds
and use constant bitrate (CBR).
Limit your encoders group of picture (GOP) to at most two times your framerate.
但我确实有-x264-params "nal-hrd=cbr"
30 -r 30 -g 60
GOP 60 帧率...
ffmpeg 命令有问题吗?还是与linux服务器有关?
**** SAME ffmpeg 命令在 youtube、twitter、twitch、dlive、facebook 等中运行得非常好......
那么我错过了什么让它为蒸汽工作?
解决方案
ffmpeg -re -i file.webm -deinterlace -c:v libx264 -preset veryfast -tune zerolatency -c:a aac -b:a 128k -ac 2 -r 30 -g 60 -vb 1369k -minrate 1369k -maxrate 1369k -bufsize 2730k -ar 44100 -x264-params "nal-hrd=cbr" -vf "scale=1280:720,format=yuv420p" -profile:v main -f flv "rtmp://ingest-rtmp.broadcast.steamcontent.com/app/___key___"
-crf
和-b:v
/-vb
是互斥的。很可能你-vb
被忽略了。因为你想要一个特定的比特率 remove-crf
。-maxrate 1369
错过了k
.- 添加
-bufsize
. 请参阅FFmpeg Wiki:流媒体站点的编码。 - 不需要
-strict -2
。用户总是在不知道为什么的情况下添加它。(适用于 2015 年之前的旧 AAC 编码器。) - 确保您的输入有音频。YouTube 等一些网站需要音频。如果它没有音频,请使用anullsrc过滤器生成静音音频。
推荐阅读
- python - 应用登录图像并转为灰度
- javascript - 在创建 ._each 函数(underscore.js)时如何编写“上下文”变量
- azure - 如何使用 ARM 模板更新 Azure 函数中的运行时规模监控设置
- python - python中的多线程程序,即使我使用join(),只有一个子线程工作并且程序没有正常退出
- go - 如何以编程方式将图像上传为公共图像?
- python - Python selenium get() 方法不起作用
- javascript - firebase 上的苹果登录问题 - 收到了重复的凭据。请使用新凭据重试
- r - GGRAPH GPL 语言使用同一类别创建具有多个变量的图形
- google-sheets - 匹配同一工作表中两个工作表中的单元格值
- python - Pytorch 中的 forward 函数究竟输出了什么?