FFMPEG 屏幕捕获问题
FFMPEG Screen Capture Issue
很抱歉,如果这个问题已经解决了,但我找不到它。
我正在尝试使用 ffmpeg 进行屏幕截图并将其流式传输到 Twitch。我同时启用了 x11grab 和 libx264,但是当我给它输入我的监视器时,它一直返回:
:0.0+0,0: Protocol not found
我确认 :0.0 确实是我的 $DISPLAY 变量,即使我直接在我的脚本中调用它也出现同样的错误。我的脚本如下:
#!/bin/bash
# Stream Variables
STREAM_KEY="<not shown>"
INRES="1680x1050"
OUTRES="1024x768"
FPS="30"
BITRATE="1266k"
BUFFER="1266k"
AUDIO_BITRATE="160k"
ffmpeg -f alsa -ac 2 -i hw:0,0 -f x11grab -framerate $FRAMERATE -video_size $INRES \
-i :0.0+0,0 -vcodec libx264 -preset veryfast -maxrate $BITRATE -bufsize $BUFFER \
-vf "scale=$OUTRES, format=yuv420p" -g $(expr $FPS \* 2) -acodec libfdk_aac -b:a $AUDIO_BITRATE \
-f flv rtmp://liva-jfk.twitch.tv/app/$STREAM_KEY
我正在使用 Debian Jessie(测试),ffmpeg 和相关的软件包来自 deb-multimedia。我很好奇这里是否有人可以看到我可能错过的东西。
旁注:我知道在 ScreenStudio 等程序中调用了相同的显示,它们可以工作,但不够灵活。我试过使用 obs-studio linux,当我开始录制时它因非法命令而崩溃,这让我想知道这是否是系统问题,可能是造成这种情况的原因。
您在 video_size
之前缺少 -
。
-f x11grab -framerate $FRAMERATE -video_size $INRES
为什么 'protocol not found'?:因为它认为 x11grab
格式适用于一些名为 video_size
的输入,并且它无法推断出实际输入的格式 :0.0+0,0
。
更新: $FRAMERATE
未定义。您打算使用 $FPS
。现在它认为 -framerate
之后的所有内容都是值,而你的情况与上面相同。
很抱歉,如果这个问题已经解决了,但我找不到它。
我正在尝试使用 ffmpeg 进行屏幕截图并将其流式传输到 Twitch。我同时启用了 x11grab 和 libx264,但是当我给它输入我的监视器时,它一直返回:
:0.0+0,0: Protocol not found
我确认 :0.0 确实是我的 $DISPLAY 变量,即使我直接在我的脚本中调用它也出现同样的错误。我的脚本如下:
#!/bin/bash
# Stream Variables
STREAM_KEY="<not shown>"
INRES="1680x1050"
OUTRES="1024x768"
FPS="30"
BITRATE="1266k"
BUFFER="1266k"
AUDIO_BITRATE="160k"
ffmpeg -f alsa -ac 2 -i hw:0,0 -f x11grab -framerate $FRAMERATE -video_size $INRES \
-i :0.0+0,0 -vcodec libx264 -preset veryfast -maxrate $BITRATE -bufsize $BUFFER \
-vf "scale=$OUTRES, format=yuv420p" -g $(expr $FPS \* 2) -acodec libfdk_aac -b:a $AUDIO_BITRATE \
-f flv rtmp://liva-jfk.twitch.tv/app/$STREAM_KEY
我正在使用 Debian Jessie(测试),ffmpeg 和相关的软件包来自 deb-multimedia。我很好奇这里是否有人可以看到我可能错过的东西。
旁注:我知道在 ScreenStudio 等程序中调用了相同的显示,它们可以工作,但不够灵活。我试过使用 obs-studio linux,当我开始录制时它因非法命令而崩溃,这让我想知道这是否是系统问题,可能是造成这种情况的原因。
您在 video_size
之前缺少 -
。
-f x11grab -framerate $FRAMERATE -video_size $INRES
为什么 'protocol not found'?:因为它认为 x11grab
格式适用于一些名为 video_size
的输入,并且它无法推断出实际输入的格式 :0.0+0,0
。
更新: $FRAMERATE
未定义。您打算使用 $FPS
。现在它认为 -framerate
之后的所有内容都是值,而你的情况与上面相同。