Changes between Initial Version and Version 1 of Capture/Capture/Desktop中文版本


Ignore:
Timestamp:
Jan 23, 2017, 4:07:17 PM (3 years ago)
Author:
stevenliu
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Capture/Capture/Desktop中文版本

    v1 v1  
     1
     2
     3== Linux 系统 ==
     4
     5使用 [https://ffmpeg.org/ffmpeg-devices.html#x11grab x11grab] 设备采集视频图像:
     6{{{
     7ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 output.mp4
     8}}}
     9
     10这条命令将会从桌面图像的左上角偏移坐标位置为 (x=100, y=200)处获取宽高为1024x768的图像, .
     11
     12如果需要加入音频,则采集 [https://ffmpeg.org/ffmpeg-devices.html#alsa-1 ALSA] (参考 [[Capture/ALSA]] 获得更多信息):
     13{{{
     14ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 -f alsa -ac 2 -i hw:0 output.mkv
     15}}}
     16
     17或者采集 [https://ffmpeg.org/ffmpeg-devices.html#pulse pulse] 输入设备:
     18{{{
     19ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 -f pulse -ac 2 -i default output.mkv
     20}}}
     21
     22
     23== 苹果 OS X 系统 ==
     24
     25使用 [https://ffmpeg.org/ffmpeg-devices.html#avfoundation avfoundation] 设备采集音视频:
     26{{{
     27ffmpeg -f avfoundation -list_devices true -i ""
     28}}}
     29
     30这条命令执行后将列出所有 avfoundation 的音频、视频采集设备列表。
     31可以通过指定想要采集的设备名采集音频、视频:
     32{{{
     33ffmpeg -f avfoundation -i "<screen device index>:<audio device index>" out.mov
     34}}}
     35
     36这条命令执行后将会从 `<screen device index>` 编号处获得视频图像,从 `<audio device index>` 编号处获得音频数据写入至输出文件 `out.mov` 中.
     37
     38== Windows 系统 ==
     39
     40使用 [[DirectShow]] [https://github.com/rdp/screen-capture-recorder-to-video-windows-free device]设备采集音视频数据:
     41{{{
     42ffmpeg -f dshow -i video="screen-capture-recorder" output.flv
     43}}}
     44
     45执行这条命令后将会 从DirectShow 设备中获得桌面图像并输出为output。flv文件. 可以参考 [http://betterlogic.com/roger/2010/07/list-of-available-directshow-screen-capture-filters/ list of alternative devices].
     46
     47如果需要采集视频外还需要采集音频则使用如下命令:
     48{{{
     49ffmpeg -f dshow -i video="UScreenCapture":audio="Microphone" output.flv
     50}}}
     51如果你想获得正在从扬声器播放的音频,需要配置 “Stereo Mix” 设备
     52
     53或者
     54{{{
     55ffmpeg -f dshow -i video="UScreenCapture" -f dshow -i audio="Microphone" output.flv
     56}}}
     57
     58
     59可以通过如下命令行列出所有dshow设备:
     60{{{
     61ffmpeg -list_devices true -f dshow -i dummy
     62}}}
     63
     64同样可以使用 [https://ffmpeg.org/ffmpeg-devices.html#gdigrab gdigrab] 输入设备从Widnows系统桌面获得屏幕图像.
     65
     66== 注意事项 ==
     67
     68如果你的配置比较低, 使用下面的命令可能会提高你的音视频编码效率,但是质量会稍微有些降低. 在这种情况下,首先你需要获取并将获取的图像保存为未压缩的视频/音频,并且当你完成抓取过程然后开始将它转换为任何你所需要的编码:
     69
     70Linux:
     71{{{
     72ffmpeg -framerate 25 -video_size 1024x768 -f x11grab -i :0.0+100,200 -f alsa -ac 2 -i pulse -vcodec libx264 -crf 0 -preset ultrafast -acodec pcm_s16le output.mkv
     73ffmpeg -i output.mkv -acodec ... -vcodec ... final.mkv
     74}}}
     75
     76Windows:
     77{{{
     78ffmpeg -f dshow -i video="screen-capture-recorder":audio="Microphone" -vcodec libx264 -crf 0 -preset ultrafast -acodec pcm_s16le output.mkv
     79ffmpeg -i output.flv -acodec ... -vcodec ... final.mkv
     80}}}
     81
     82== 无损录制 ==
     83
     84如果你想很好的将桌面图像录制下来,x264编码器可以做到,使用无损编码方式即可,例如:
     85
     86{{{
     87ffmpeg -video_size 1920x1080 -framerate 30 -f x11grab -i :0.0 -c:v libx264 -qp 0 -preset ultrafast capture.mkv
     88}}}
     89
     90{{{-qp 0}}} 这个参数是设置 x264 的压缩参数为无损压缩, {{{-preset ultrafast}}} 预设值参数将会尽快的进行 x264 编码压缩.
     91
     92这么做在当前主流的硬件设备上做不丢帧的编码是可以做到足够快的,并且还不会占用全部的CPU。
     93
     94可以通过一次录制,一次编码的方式进行无损编码压缩,录制的时候以最快速度将视频图像录制下来,然后对录制下来的图像进行慢速压缩,这样可以保证图像质量,并且可以保证视频不丢帧
     95
     96{{{
     97ffmpeg -i capture.mkv -c:v libx264 -qp 0 -preset veryslow capture_smaller.mkv
     98}}}
     99
     100参考 [[Encode/H.264]] 获得更多信息和例子.