ffmpeg:考虑增加probesize误差,但永远不会满足 [英] ffmpeg: consider increasing probesize error, but it is never satisfied

查看:80
本文介绍了ffmpeg:考虑增加probesize误差,但永远不会满足的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我今天尝试使用 Arch 解决方案进行流式传输以 twitch通过FFMPEG,但由于FFMPEG上的一件简单的事情,我所有的尝试都徒劳无功.它说probesize不够大,所以我本能地越来越多地增加probesize值......现在它是-probesize500M"但它仍然说这还不够.这是代码片段

I was trying to use an Arch solution for streaming to twitch today through FFMPEG, but all of my attempts were in vain because of one simple thing on FFMPEG. it says that the probesize is not large enough, so I instinctively increased the probesize value more and more... and now it is -probesize "500M" yet it is still saying it is not enough. here is the code snippet

[x11grab @ 0x5631f846cd00] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, x11grab, from ':0.0':
  Duration: N/A, start: 1603397505.341400, bitrate: 1007124 kb/s
    Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1366x768, 1007124 kb/s, 30 fps, 1000k tbr, 1000k tbn, 1000k tbc
0: Input/output error

和代码

#!/bin/bash
     INRES="1366x768" # input resolution
     OUTRES="1366x768" # output resolution
     FPS="30" # target FPS
     GOP="60" # i-frame interval, should be double of FPS,
     GOPMIN="30" # min i-frame interval, should be equal to fps,
     THREADS="2" # max 6
     CBR="1000k" # constant bitrate (should be between 1000k - 3000k)
     QUALITY="ultrafast"  # one of the many FFMPEG preset
     AUDIO_RATE="44100"
     PROBESZ="500M" # specify a size for the ffmpeg tool to assess frames
     STREAM_KEY="$1" # paste the stream key after calling stream_now
     SERVER="live-mia" # twitch server in miami Florida, see https://stream.twitch.tv/ingests/ for list

     ffmpeg -f x11grab -s "$INRES" -r "$FPS" -i :0.0 -f pulse -i 0 -f flv -ac 2 -ar $AUDIO_RATE \
       -vcodec libx264 -g $GOP -keyint_min $GOPMIN -b:v $CBR -minrate $CBR -maxrate $CBR -pix_fmt yuv420p\
       -s $OUTRES -preset $QUALITY -tune film -acodec aac -threads $THREADS -strict normal \
       -bufsize $CBR -probesize $PROBESZ "rtmp://$SERVER.twitch.tv/app/$STREAM_KEY"

尽管它是存储在 .bashrc 中的解决方案,但我将其存储在脚本中以手动调用.

even though it was a solution to store in .bashrc, I stored it in a script to call manually.

如果这有帮助,这里是错误前显示的精美横幅 ffmpeg

and if this is helpful, here is the fancy banner ffmpeg shows before the error

ffmpeg version n4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 10.1.0 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100

推荐答案

Stream #0:没有足够的帧来估计速率;考虑增加probesize

这只是一个小警告.您可以忽略它,但如果您希望它消失,请使用 -probesize 作为输入选项.您将其用作输出选项.顺序和位置ffmpeg 中很重要.

Stream #0: not enough frames to estimate rate; consider increasing probesize

This is just a minor warning. You can ignore it, but if you want it to go away use -probesize as in input option. You're using it as an output option. Order and placement matters in ffmpeg.

ffmpeg -probesize 10M -i input ...

0:输入/输出错误

这是导致失败的实际错误.它试图告诉您 -i 0 不涉及任何实际输入.

0: Input/output error

This is the actual error that is causing failure. It's trying to tell you -i 0 does not refer to any actual input.

所以你需要为pulse提供一个实际的输入,比如-i default.

So you need to provide an actual input for pulse, such as -i default.

要列出 PulseAudio 源设备及其属性,请运行 pactl list sources.

To list the PulseAudio source devices and their properties run pactl list sources.

有关详细信息,请参阅 FFmpeg 设备文档:Pulse.

See FFmpeg Devices Documentation: Pulse for more info.

几年前,我试图对 Arch Wiki 上有时相当糟糕、过时或完全错误的 ffmpeg 示例进行改进,但我收到投诉,称我违反了不要立即进行复杂的编辑";并将其回滚.浪费时间,所以我再也没有碰过它.我推荐 FFmpeg Wiki.

Years ago I tried to make improvements to the sometimes rather poor, outdated, or plain wrong ffmpeg examples on the Arch Wiki but I got complaints that I violated "Do not make complex edits at once" and rolled it back. Waste of time, so I never touched it again. I recommend the FFmpeg Wiki instead.

一些推荐的更改:

#!/bin/bash
INRES="1366x768" # input resolution
OUTRES="1366x768" # output resolution
FPS="30" # target FPS. Use 30 or 60. 60 is preferred for games if your computer can handle it.
GOP="60" # i-frame interval, should be double of $FPS
BITRATE="4000k" # bitrate (should be between 3000k - 6000k). See https://stream.twitch.tv/encoding/
BUFSIZE="8000k" # 2x to 4x $BITRATE
PRESET="fast"  # use slowest preset that still maintains $FPS. See https://trac.ffmpeg.org/wiki/Encode/H.264#Preset
AUDIO_SAMPLE_RATE="44100"
STREAM_KEY="$1" # paste the stream key after calling stream_now
SERVER="live-mia" # twitch server in miami Florida, see https://stream.twitch.tv/ingests/ for list

ffmpeg \
  -f x11grab -video_size "$INRES" -framerate "$FPS" -i :0.0 \
  -f pulse -channels 2 -sample_rate "$AUDIO_SAMPLE_RATE" -i default \
  -c:v libx264 -g "$GOP" -b:v "$BITRATE" -maxrate "$BITRATE" -bufsize "$BUFSIZE" -vf format=yuv420p \
  -s "$OUTRES" -preset "$PRESET" -c:a aac \
  -f flv "rtmp://$SERVER.twitch.tv/app/$STREAM_KEY"

这篇关于ffmpeg:考虑增加probesize误差,但永远不会满足的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆