[FFmpeg-devel] av_open_input_file and video4linux2

anouar me.anouar
Wed Feb 25 17:25:13 CET 2009


Sorry if I'm not on the right list. This is my first message.
and thanks for advance for any help

I try to grub images from my v4l2 webcam. It's correctly installed on a 
fedora10 distribution. Works well with MPlayer and ffmpeg (see log at 
the end)

I'm using the last stable ffmpeg
this is my class initialization in my project.
=================
int flux::Init ( const char* campath, int channel, const char* standard, 
int w, int h, int fps, const char* driver )
  {     av_register_all();
     //Register all devices
     avdevice_register_all();
     av_register_all();

     AVFormatParameters formatParams;
     AVInputFormat *iformat;

     videofilename=campath;
     formatParams.channel = channel;
     formatParams.standard =standard;
     formatParams.width = w;
     formatParams.height = h;
     formatParams.time_base= ( AVRational ) {1,fps};
     iformat = av_find_input_format ( driver );

     if ( iformat ) {
        printf ( "API %s found\n", iformat->name );
     } else {
        fprintf ( stderr,"API %s unknown for this ffmpeg version!\n", 
driver );
     }
<--------------------until this line every thing works fine

     int res=av_open_input_file ( &pFormatCtx, videofilename, iformat, 
0, &formatParams ); <-- return -12
     if ( res !=0 ) {
        fprintf ( stderr,"Initialisation failed , [%d] \n",res );
        exit ( -1 );
     }
/*--------------------------*/
}

the av_open_input_file ( &pFormatCtx, videofilename, iformat, 0, 
&formatParams ); return me a -12 so I think it fails to initiliaze the 
webcam.
I'm using exactely the same parameters that I used for running ffmpeg
size= (640x480)
fps= 30
driver=video4linux2
videofilename=/dev/video0



LOGS:Mplayer result

=========================
mplayer tv:// -tv driver=v4l2:width=640:height=480
MPlayer dev-SVN-r27514-4.3.2 (C) 2000-2008 MPlayer 
Team                   CPU: Intel(R) Core(TM)2 CPU          6600  @ 
2.40GHz (Family: 6, Model: 15, Stepping: 6)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 
1                            Compiled with runtime CPU 
detection.                                                   mplayer: 
could not connect to 
socket                                                   mplayer: No 
such file or 
directory                                                     Failed to 
open LIRC support. You will not be able to use your remote 
control.         
Playing tv://.
TV file format detected.
Selected driver: v4l2
name: Video 4 Linux 2 input
author: Martin Olschewski <olschewski at zpr.uni-koeln.de>
comment: first try, more to come ;-)
Selected device: Philips SPC 900NC webcam
Capabilites:  video capture  read/write  streaming
supported norms: 0 = webcam;
inputs: 0 = usb;
Current input: 0
Current format: YUV420
v4l2: ioctl set format failed: Invalid argument
tv.c: norm_from_string(pal): Bogus norm parameter, setting default.
Selected input hasn't got a tuner!
v4l2: Cannot get fps
v4l2: ioctl set mute failed: Invalid argument
v4l2: ioctl query control failed: Invalid argument
==========================================================================
Opening video decoder: [raw] RAW Uncompressed Video
VDec: vo config request - 640 x 480 (preferred colorspace: Planar I420)
VDec: using Planar I420 as output csp (no 0)
Movie-Aspect is undefined - no prescaling applied.
VO: [xv] 640x480 => 640x480 Planar I420
Selected video codec: [rawi420] vfm: raw (RAW I420)
==========================================================================
Audio: no sound
Starting playback...
V:   0.0  26/ 26 ??% ??% ??,?% 0 0
================================


FFmpg log:

$ffmpeg -f video4linux2 -s 640x480 -r 30 -i /dev/video0 test.avi
FFmpeg version SVN-r15261, Copyright (c) 2000-2008 Fabrice Bellard, et al.
 configuration: --prefix=/usr --incdir=/usr/include/ffmpeg 
--libdir=/usr/lib --mandir=/usr/share/man --arch=i386 --extra-cflags=-O2 
-g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector 
--param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic 
-fasynchronous-unwind-tables --enable-bzlib --enable-libdc1394 
--enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame 
--enable-libschroedinger --enable-libtheora --enable-libvorbis 
--enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter 
--enable-avfilter-lavf --enable-postproc --enable-swscale 
--enable-pthreads --disable-static --enable-shared --enable-gpl 
--disable-debug --disable-optimizations --disable-stripping 
--shlibdir=/usr/lib --cpu=i386
 libavutil     49.10. 0 / 49.10. 0
 libavcodec    51.71. 0 / 51.71. 0
 libavformat   52.22. 1 / 52.22. 1
 libavdevice   52. 1. 0 / 52. 1. 0
 libavfilter    0. 1. 0 /  0. 1. 0
 libswscale     0. 6. 1 /  0. 6. 1
 libpostproc   51. 2. 0 / 51. 2. 0
 built on Feb  4 2009 19:51:30, gcc: 4.3.2 20081105 (Red Hat 4.3.2-7)
[video4linux2 @ 0x939d7a0][3]Capabilities: 5000001
Input #0, video4linux2, from '/dev/video0':
 Duration: N/A, start: 1235559597.244885, bitrate: 110591 kb/s
   Stream #0.0: Video: rawvideo, yuv420p, 640x480, 110591 kb/s, 30.00 tb(r)
Output #0, avi, to 'test.avi':
   Stream #0.0: Video: mpeg4, yuv420p, 640x480, q=2-31, 200 kb/s, 30.00 
tb(c)
Stream mapping:
 Stream #0.0 -> #0.0
Press [q] to stop encoding
frame=  108 fps= 30 q=7.1 Lsize=     323kB time=3.60 bitrate= 735.3kbits/s
video:315kB audio:0kB global headers:0kB muxing overhead 2.579539%






More information about the ffmpeg-devel mailing list