首页 > 解决方案 > 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 60GOP 60 帧率...

ffmpeg 命令有问题吗?还是与linux服务器有关?

**** SAME ffmpeg 命令在 youtube、twitter、twitch、dlive、facebook 等中运行得非常好......

那么我错过了什么让它为蒸汽工作?

标签: ffmpegvideo-streamingsteam

解决方案


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过滤器生成静音音频。

推荐阅读