Hi all,
I tried to use the stabilization feature of transcode on a mjpeg avi
captured by a Nikon D90 camera (I can provide the video, if required).
Unfortunately, it crashed. The system is ubuntu 9.10, with the standard
libs. The crash occurs both with the ubuntu package and a selfcompiled
version of transcode 1.1.5. See below for a backtrace of the crash.
Is there a compatibility problem between the ffmpeg version shiped with
ubuntu? The video works fine with all other players I have tried (totem,
vlc, mplayer, ffplay).
$ ffmpeg
FFmpeg version SVN-r19352-4:0.5+svn20090706-2ubuntu2, Copyright (c)
2000-2009 Fabrice Bellard, et al.
configuration: --extra-version=4:0.5+svn20090706-2ubuntu2
--prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau
--enable-bzlib --enable-libgsm --enable-libschroedinger
--enable-libspeex --enable-libtheora --enable-libvorbis
--enable-pthreads --enable-zlib --disable-stripping --disable-vhook
--enable-gpl --enable-postproc --enable-swscale --enable-x11grab
--enable-libdc1394
--extra-cflags=-I/build/buildd/ffmpeg-0.5+svn20090706/debian/include
--enable-shared --disable-static
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 0 / 52.20. 0
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 0. 4. 0 / 0. 4. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Oct 13 2009 22:35:00, gcc: 4.4.1
At least one output file must be specified
Here is the backtrace of the crash (transcode 1.1.5):
(gdb) r -J stabilize -i DSC_0103.AVI -y null,null -o dummy
Starting program: /home/angelo/local/transcode/bin/transcode -J
stabilize -i DSC_0103.AVI -y null,null -o dummy
[Thread debugging using libthread_db enabled]
transcode v1.1.5 (C) 2001-2003 Thomas Oestreich, 2003-2009 Transcode Team
libdvdread: Using libdvdcss version 1.2.10 for DVD access
libdvdnav:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.IFO failed
libdvdnav:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.BUP failed
libdvdread: Can't open file VIDEO_TS.IFO.
libdvdread: Using libdvdcss version 1.2.10 for DVD access
libdvdnav:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.IFO failed
libdvdnav:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.BUP failed
libdvdread: Can't open file VIDEO_TS.IFO.
[transcode] V: auto-probing | DSC_0103.AVI (OK)
[transcode] V: import format | MJPEG in RIFF data, AVI (module=ffmpeg)
[transcode] A: auto-probing | DSC_0103.AVI (OK)
[transcode] A: import format | PCM in RIFF data, AVI (module=raw)
[transcode] V: AV demux/sync | (1) sync AV at initial MPEG sequence
[transcode] V: import frame | 1280x720 1.78:1 encoded @ 16:9
[transcode] V: bits/pixel | 0.081 (low)
[transcode] V: decoding fps,frc | 24.000,2
[transcode] V: video format | YUV420 (4:2:0) aka I420
[transcode] A: import format | 0x1 PCM [11025,16,1] 176
kbps
[transcode] A: export | disabled
[transcode] V: encoding fps,frc | 24.000,2
[transcode] A: bytes per frame | 918 (918.750000)
[transcode] A: adjustment | 7...@1000
[transcode] V: IA32/AMD64 accel | sse3 sse2 sse mmx cmove asm
[transcode] V: video buffer | 10 @ 1280x720 [0x2]
[transcode] A: audio buffer | 10 @ 11025x1x16
[import_raw.so] v0.3.3 (2008-11-23) (video) RGB/YUV | (audio) PCM
[import_ffmpeg.so] v0.1.15 (2008-01-28) (video) ffmpeg: MS
MPEG4v1-3/MPEG4/MJPEG
[filter_stabilize.so] v0.61 (2009-10-25) extracts relative
transformations of
subsequent frames (used for stabilization together with the
transform filter in a second pass)
[filter_stabilize.so] Image Stabilization Settings:
[filter_stabilize.so] maxshift = 60
[filter_stabilize.so] stepsize = 2
[filter_stabilize.so] allowmax = 1
[filter_stabilize.so] algo = 1
[filter_stabilize.so] fieldnum = 20
[filter_stabilize.so] fieldsize = 48
[filter_stabilize.so] mincontrast = 0.150000
[filter_stabilize.so] show = 0
[filter_stabilize.so] result = DSC_0103.AVI.trf
[filter_stabilize.so] field setup: row 1 with 6 fields
[filter_stabilize.so] field setup: row 2 with 7 fields
[filter_stabilize.so] field setup: row 3 with 6 fields
[export_null.so] v0.1.2 (2001-08-17) (video) null | (audio) null
[New Thread 0x7fffe0f80910 (LWP 2824)]
[New Thread 0x7fffe077f910 (LWP 2825)]
[New Thread 0x7fffdff7e910 (LWP 2826)]
[import_raw.so] tcextract -x pcm -i "DSC_0103.AVI" -d 0 | tcextract -a 0
-x pcm -d 0 -t raw
[import_ffmpeg.so] input is mjpeg, reducing range from YUVJ420P to YUV420P
[filter_levels.so] instance #2
[filter_levels.so] v1.2.0 (2007-06-07) Luminosity level scaler
[filter_levels.so] scaling 0-255 gamma 1.000000 to 16-240 (pre-process)
[New Thread 0x7fffdf2d3910 (LWP 2830)]
[New Thread 0x7fffdead2910 (LWP 2831)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffdead2910 (LWP 2831)]
0x00000000004639c4 in memcpy_amd64 (dest=0x7fffdf578f90,
src=0x7fffde16b0c8, bytes=640)
at memcpy.c:400
400 asm("\
(gdb) bt
#0 0x00000000004639c4 in memcpy_amd64 (dest=0x7fffdf578f90,
src=0x7fffde16b0c8, bytes=640)
at memcpy.c:400
#1 0x0000000000463930 in ac_memcpy (dest=0x7fffdf578f90,
src=0x7fffde16b0c8, size=640)
at memcpy.c:24
#2 0x00007fffe3a8c458 in import_ffmpeg_decode (param=0x7fffdead2040,
vob=0x6a8010)
at import_ffmpeg.c:654
#3 0x00007fffe3a8a6c0 in tc_import (opt=22, para1=0x7fffdead2040,
para2=0x6a8010)
at import_def.h:93
#4 0x000000000041beeb in tcv_import (opt=22, para1=0x7fffdead2040,
para2=0x6a8010)
at dl_loader.c:104
#5 0x000000000041a55f in video_import_loop (vob=0x6a8010) at decoder.c:472
#6 0x000000000041aded in video_import_thread (_vob=0x6a8010) at
decoder.c:696
#7 0x00007ffff787ba04 in start_thread () from /lib/libpthread.so.0
#8 0x00007ffff65da7bd in clone () from /lib/libc.so.6
#9 0x0000000000000000 in ?? ()
(gdb)
ciao
Pablo