博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

libavdevice

Posted on 2017-03-10 14:01  bw_0927  阅读(1163)  评论(0编辑  收藏  举报

http://blog.csdn.net/leixiaohua1020/article/details/39702113

 

FFmpeg中有一个和多媒体设备交互的类库:Libavdevice。使用这个库可以读取电脑(或者其他设备上)的多媒体设备的数据,或者输出数据到指定的多媒体设备上

Libavdevice支持以下设备作为输入端:

alsa
avfoundation
bktr
dshow
dv1394
fbdev
gdigrab
iec61883
jack
lavfi
libcdio
libdc1394
openal
oss
pulse
qtkit
sndio
video4linux2, v4l2
vfwcap
x11grab
decklink

Libavdevice支持以下设备作为输出端:

alsa
caca
decklink
fbdev
opengl
oss
pulse
sdl
sndio
xv

 

  1. avdevice_register_all();  
  2. 使用libavdevice读取数据和直接打开视频文件比较类似。因为系统的设备也被FFmpeg认为是一种输入的格式(即AVInputFormat)。

 

使用FFmpeg打开一个普通的视频文件使用如下函数:

 
  1. AVFormatContext *pFormatCtx = avformat_alloc_context();  
  2. avformat_open_input(&pFormatCtx, "test.h265",NULL,NULL);  


使用libavdevice的时候,唯一的不同在于需要首先查找用于输入的设备。在这里使用av_find_input_format()完成:

    1. AVFormatContext *pFormatCtx = avformat_alloc_context();  
    2. AVInputFormat *ifmt=av_find_input_format("vfwcap");  
    3. avformat_open_input(&pFormatCtx, 0, ifmt,NULL);  

 

 

 

==================

http://blog.csdn.net/weixin_35804181/article/details/57079884

libavdevice库提供和libavformat相同的接口。即输入设备被认为是一个demuxer,而输出设备被认为是一个muxer。 
此外,每个输入输出设备都支持私有选项。

1.输入Devices

ffmpeg的默认支持所有的输入设备,可以使用”–list-indevs”(./configure –list-indevs 
)来查看所有的输入设备列表。 
“ffmpeg -devices” 将显示支持的输入设备列表。

1.1.音频输入设备

ALSA
    ALSA是Advanced Linux Sound Architecture的缩写,高级Linux声音架构的简称,它在Linux操作系统上提供了音频和MIDI(Musical Instrument Digital Interface,音乐设备数字化接口)的支持
jack
    音频输入设备  
libcdio
    音频输入设备,音频CD输入设备.
openal
    提供基于OpenAL的音频捕捉
oss
    Open Sound System的音频输入设备
pulse
sndio

1.2.视频输入设备

bktr
    BSD系统上的视频输入设备
dv1394
    计算机接口IEEE1394,俗称火线接口,主要用于视频的采集,在INTEL高端主板与数码摄像机(DV)上可见。
libdc1394
    视频输入设备,IIDC1394 input device, based on libdc1394 and libraw1394. 
fbdev
    视频输入设备,Linux的输入缓冲帧设备。
gdigrab
    基于WIN32 GDI屏幕捕获设备,允许在Windows上捕获显示区域。 
iec61883
    视频输入设备,当使用libiec61883时,DV/HDV火线输入设备. 
qtkit
video4linux2, v4l2
vfwcap
    VfW (Video for Windows) 捕捉输入设备. 
x11grab
    linux系统的X11屏幕捕捉输入设备. 

1.3.音视频输入设备

AVFoundation
    AVFoundation是苹果在推荐的抓流框架
decklink
    Blackmagic DeckLink采集卡的接口设备,主要是SDI接口
dshow
    Windows上的DirectShow输入设备。

1.4.其他输入设备

lavfi
    Libavfilter的虚拟输入设备

2.输出Devices

2.1.音频输出设备

alsa
oss
pulse
sndio

2.2.视频输出设备

caca
fbdev
xv

2.3.音视频输出设备

decklink
opengl
sdl

2.4.其他输出设备

3.查看工作平台支持设备的详情

命令:ffmpeg -devices
信息:
    Devices:
    D. = Demuxing supported
     .E = Muxing supported
    --
    DE alsa            ALSA audio output
    D  dv1394          DV1394 A/V grab
    DE fbdev           Linux framebuffer
    D  lavfi           Libavfilter virtual input device
    DE oss             OSS (Open Sound System) playback
    E v4l2            Video4Linux2 output device
    D  video4linux2,v4l2 Video4Linux2 device grab
    D  x11grab         X11 screen capture, using XCB