[FFmpeg-user] How to open avfoundation via C

Jeroen Ooms jeroenooms at gmail.com
Tue Oct 9 12:55:35 EEST 2018


On Tue, Oct 9, 2018 at 2:36 AM Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:
>
> 2018-10-09 1:03 GMT+02:00, Jeroen Ooms <jeroenooms at gmail.com>:
> > I would like to capture the screen in MacOS. This works via the command
> > line:
> >
> >   Command line: ffmpeg -f avfoundation -i "1" -pix_fmt yuv420p -r 25
> > -t 5 out.mov
> >
> > However I can't figure out how to do this in C. I tried the following,
> > but it gives an error "Device selection unsupported.".
> >
> >   AVBufferRef *capture;
> >   AVDictionary *opts = NULL;
> >   av_dict_set(&opts, "video_device_index", "1", 0);
> >   av_dict_set(&opts, "audio_device_index", "none", 0);
> >   av_hwdevice_ctx_create(&capture, AV_HWDEVICE_TYPE_VIDEOTOOLBOX,
> >                                  "avfoundation", opts, 0);
>
> From the command line above, avfoundation
> is a device / format, not a hwdevice.

I don't understand, it is listed as a video device in
av_input_video_device_next(). Which API is used to read from such an
input then? I can only find command line examples for avfoundation, it
is unclear to me how to capture the camera/screen in C.


More information about the ffmpeg-user mailing list