mencoder дропает ровно половину прилетающих с камеры фреймов. Не знаю что делать.
При запуске скрипт может начать писать нормально с 29.9фпс где-то 1 из 20 запусков - в остальных запсиь поднимается до 14 и все. После остановки пишет что количество обработанных фреймов точно равно количеству дропнутых. При выставлении низкого разрешения и 60 фпс - запись идет с 29.8 и тоже processed=dropped. При выставлении 10фпс - пишет 4.5.
guvcview показывает что камера может 640х480@30/1 но реальный фпс при этом 14.5 в окне. Закрываешь-открываешь - уже 29 реальных. Потом опять половинит.
Перезагрузки не помогают - рулетка с фпс продолжается.
#!/bin/bash
dt=`date +%Y%m%d%H%M%S`
FILENAME="${dt}.avi"
echo $FILENAME
/usr/bin/mencoder tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0:alsa:forceaudio:amode=0:adevice=hw.0,0 -fps 30000/1001 -vf harddup -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000:trell:threads=4 -oac mp3lame -lameopts vbr=3:abr=96:mode=3 -o /home/andrey/motion-temp/$FILENAME -of lavf
./recordstart.sh
20140915153013.avi
MEncoder 1.1-4.8 (C) 2000-2012 MPlayer Team
success: format: 9 data: 0x0 - 0x0
TV file format detected.
Selected driver: v4l2
name: Video 4 Linux 2 input
author: Martin Olschewski <olschewski@zpr.uni-koeln.de>
comment: first try, more to come ;-)
v4l2: your device driver does not support VIDIOC_G_STD ioctl, VIDIOC_G_PARM was used instead.
Selected device: HP Truevision HD
Capabilities: video capture streaming
supported norms:
inputs: 0 = Camera 1;
Current input: 0
Current format: MJPEG
tv.c: norm_from_string(pal): Bogus norm parameter, setting default.
v4l2: ioctl enum norm failed: Inappropriate ioctl for device
Error: Cannot set norm!
Selected input hasn't got a tuner!
v4l2: ioctl set mute failed: Invalid argument
[V] filefmt:9 fourcc:0x32595559 size:640x480 fps:30.000 ftime:=0.0333
Input fps will be interpreted as 29.970 instead.
==========================================================================
Opening audio decoder: [pcm] Uncompressed PCM audio decoder
AUDIO: 44100 Hz, 2 ch, s16le, 1411.2 kbit/100.00% (ratio: 176400->176400)
Selected audio codec: [pcm] afm: pcm (Uncompressed PCM)
==========================================================================
libavformat version 54.20.4 (external)
Mismatching header version 54.20.3
** MUXER_LAVF *****************************************************************
REMEMBER: MEncoder's libavformat muxing is presently broken and can generate
INCORRECT files in the presence of B-frames. Moreover, due to bugs MPlayer
will play these INCORRECT files as if nothing were wrong!
*******************************************************************************
OK, exit.
libavcodec version 54.35.0 (external)
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
Opening video filter: [harddup]
==========================================================================
Opening video decoder: [raw] RAW Uncompressed Video
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
Movie-Aspect is undefined - no prescaling applied.
[swscaler @ 0x7fda51a6a640]using unscaled yuyv422 -> yuv420p special converter
videocodec: libavcodec (640x480 fourcc=34504d46 [FMP4])
Selected video codec: [rawyuy2] vfm: raw (RAW YUY2)
==========================================================================
MP3 audio selected.
Forcing audio preload to 0, max pts correction to 0.
Pos: 0.0s 1f ( 0%) 0.00fps Trem: 0min 0mb A-V:0.000 [0:0]
VIDEO CODEC ID: 13
AUDIO CODEC ID: 15001, TAG: 0
Writing header...
^CPos: 4.9s 146f ( 0%) 14.59fps Trem: 0min 0mb A-V:0.000 [1124:123]
Flushing video frames.
Writing index...
Video stream: 1124.510 kbit/s (140563 B/s) size: 684761 bytes 4.872 secs 146 frames
Audio stream: 123.108 kbit/s (15388 B/s) size: 74769 bytes 4.859 secs
v4l2: ioctl set mute failed: Invalid argument
v4l2: 147 frames successfully processed, 147 frames dropped.