【问题标题】:ffmpeg for screen capture?ffmpeg 用于屏幕截图?
【发布时间】:2012-04-28 03:34:15
【问题描述】:
所以我有一个小程序,它可以捕捉屏幕和来自计算机麦克风的声音,
然后截图被编码为 ScreenVideo2,声音被编码为 AAC。
如何使用 ffmpeg 逐帧复用,然后将复用后的输出发送到 wowza 媒体服务器?
如果用 ffmpeg 做不到,请问有什么建议吗?
【问题讨论】:
-
这个ScreenVideo2?它似乎是服务器端的。您如何从客户端获取屏幕截图和声音到服务器?
-
不,这个ScreenVideo2:截图是用经典机器人截取的,并用这个编码,音频取自TargetDataLine,然后处理成AAC,然后我使用flazr将它们发送到服务器,但我是按顺序执行的,但它应该被混合成一个。
标签:
java
audio
video
applet
mux
【解决方案1】:
哪个操作系统? Linux下,你可能要考虑http://kde-apps.org/content/show.php/FDesktopRecorder?content=147844
脚本的核心是这样的:
记录屏幕:
ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 -s $(xwininfo -root | \
grep 'geometry' | awk '{print $2;}') -i :0.0 -acodec flac -vcodec libx264 \
-vpre lossless_ultrafast -threads 0 -y output.mkv
录制一个窗口:
#!/bin/sh INFO=$(xwininfo -frame) WIN_GEO=$(echo $INFO | \
grep -oEe 'geometry [0-9]+x[0-9]+' | \
grep -oEe '[0-9]+x[0-9]+')WIN_XY=$(echo $INFO | \
grep -oEe 'Corners:\s+\+[0-9]+\+[0-9]+' | grep -oEe '[0-9]+\+[0-9]+' | \
sed -e 's/\+/,/' ) ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 \
-s $WIN_GEO -i :0.0+$WIN_XY -acodec flac -vcodec libx264 \
-vpre lossless_ultrafast -threads 0 -y output-single.mkv
【解决方案2】:
Xuggler 可以为你做that。我不确定它是否在 Applets 中工作。它能够在后台使用 ffmpeg 对帧进行编码。它目前正在积极开发中,并通过其邮件列表获得了良好的支持。