Bug#675584: /usr/bin/avconv: avconv segfaults when transcoding video with libx264 presets

Rogério Brito rbrito at ime.usp.br
Sat Jun 2 10:25:31 UTC 2012


Package: libav-tools
Version: 6:0.8.2-2
Severity: important
File: /usr/bin/avconv

Hi.

I have just tried to transcode some lecture videos for watching on my ipod
and I can't get them working because avconv segfaults when I use this:

,----[ avconv -y -i in.mp4 -c:v libx264 -pre libx264-ipod320 -s 320x240 -b:v 768k -c:a copy out.mp4 ]
| avconv version 0.8.2-6:0.8.2-2, Copyright (c) 2000-2011 the Libav developers
|   built on May 16 2012 21:00:23 with gcc 4.7.0
| Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'in.mp4':
|   Metadata:
|     major_brand     : isom
|     minor_version   : 512
|     compatible_brands: isomiso2avc1mp41
|     creation_time   : 1970-01-01 00:00:00
|     encoder         : Lavf53.29.100
|   Duration: 00:27:26.60, start: 0.000000, bitrate: 158 kb/s
|     Stream #0.0(und): Video: h264 (High), yuv420p, 960x540 [PAR 1:1 DAR 16:9], 26 kb/s, 15 fps, 15 tbr, 15 tbn, 30 tbc
|     Metadata:
|       creation_time   : 1970-01-01 00:00:00
|     Stream #0.1(und): Audio: aac, 44100 Hz, stereo, s16, 127 kb/s
|     Metadata:
|       creation_time   : 1970-01-01 00:00:00
| Segmentation fault
`----

If I remove the '-pre libx264-ipod320' part from the command line, then
avconv converts the video, but not with the parameters necessary for a low
powered device (i.e., Baseline Profile H.264).

I don't have here symbols for libav (which means that gdb doesn't generate
any useful traceback), but upon using strace on avconv, this is what I get:

,----
| (...)
| open("/home/rbrito/.avconv/libx264-libx264-ipod320.avpreset", O_RDONLY) = -1 ENOENT (No such file or directory)
| open("/home/rbrito/.avconv/libx264-ipod320.avpreset", O_RDONLY) = -1 ENOENT (No such file or directory)
| open("/usr/share/avconv/libx264-libx264-ipod320.avpreset", O_RDONLY) = -1 ENOENT (No such file or directory)
| open("/usr/share/avconv/libx264-ipod320.avpreset", O_RDONLY) = 6
| lseek(6, 0, SEEK_SET)                   = 0
| read(6, "profile=baseline\nlevel=13\nmaxrat"..., 32768) = 57
| read(6, "", 32711)                      = 0
| close(6)                                = 0
| --- SIGSEGV (Segmentation fault) @ 0 (0) ---
| +++ killed by SIGSEGV +++
| Segmentation fault
`----

I have not read the code (too short on time), but I suspect that this is
easily reproducible.

Regards,

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (101, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.4.0-dirty (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=en_US.utf-8, LC_CTYPE=pt_BR.utf-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages libav-tools depends on:
ii  libavcodec53     6:0.8.2-2
ii  libavdevice53    6:0.8.2-2
ii  libavfilter2     6:0.8.2-2
ii  libavformat53    6:0.8.2-2
ii  libavutil51      6:0.8.2-2
ii  libc6            2.13-32
ii  libpostproc52    6:0.8.2-2
ii  libsdl1.2debian  1.2.15-3
ii  libswscale2      6:0.8.2-2

libav-tools recommends no packages.

libav-tools suggests no packages.

-- no debconf information

-- 
Rogério Brito : rbrito@{ime.usp.br,gmail.com} : GPG key 4096R/BCFCAAAA
http://rb.doesntexist.org/blog : Projects : https://github.com/rbrito/
DebianQA: http://qa.debian.org/developer.php?login=rbrito%40ime.usp.br





More information about the pkg-multimedia-maintainers mailing list