Автор Тема: Массовые регрессии в avconv?  (Прочитано 3084 раз)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
[scale @ 0x80689a0] w:854 h:480 fmt:yuv420p -> w:320 h:180 fmt:yuv420p flags:0x4
[mpeg4 @ 0x80697c0] Invalid pixel aspect ratio 1281/1280, limit is 255/255
$ avconv -version
avconv version 0.8.4-alt0.M60P.2 (git.2c8ce462), Copyright (c) 2000-2012 the Libav developers
  built on Dec 17 2012 09:38:49 with gcc 4.5.3 20120403 (ALT Linux 4.5.3-alt1.M60P.1)

Таким
http://trac.ffmpeg.org/ticket/498
http://ffmpeg-users.933282.n4.nabble.com/Invalid-pixel-aspect-ratio-65536-65536-limit-is-255-255-td3696980.html
http://www.opennet.ru:8101/openforum/vsluhforumID15/3918.html
пол-интернета забито.
Хотелось бы спросить у разрабов софтины:
- И как это нужно понимать?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Массовые регрессии в avconv?
« Ответ #1 : 30.07.2013 00:18:57 »
Хотелось бы спросить у разрабов софтины:
Хотеть не вредно. Спросите :
http://sourceforge.net/projects/avconv/
Только может оказаться, что они тут не при чём (у них код не менялся) , а виноваты библиотеки, который он использует.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Массовые регрессии в avconv?
« Ответ #2 : 30.07.2013 14:27:56 »
Только может оказаться, ... виноваты библиотеки, ...

Точно:
    if ((s->codec_id == AV_CODEC_ID_MPEG4 ||
         s->codec_id == AV_CODEC_ID_H263 ||
         s->codec_id == AV_CODEC_ID_H263P) &&
        (avctx->sample_aspect_ratio.num > 255 ||
         avctx->sample_aspect_ratio.den > 255)) {
        av_log(avctx, AV_LOG_ERROR,
               "Invalid pixel aspect ratio %i/%i, limit is 255/255\n",
               avctx->sample_aspect_ratio.num, avctx->sample_aspect_ratio.den);
        return -1;
    }
https://github.com/libav/libav/blob/master/libavcodec/mpegvideo_enc.c

Выберу время, проверю на 5.1 системе.
Со старыми версиями.
« Последнее редактирование: 30.07.2013 14:30:00 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Массовые регрессии в avconv?
« Ответ #3 : 30.07.2013 20:50:30 »
В системе на 5.1/branch как два байта переслать:
$ su -
# mount -o bind /proc /mnt/sdb3/proc
# mount -o bind /dev /mnt/sdb3/dev
# mount -o bind /sys /mnt/sdb3/sys
# chroot /mnt/sdb3
# mount /dev/sda3 /mnt/disk

ffmpeg -i INPUT.480.mp4 -vcodec mpeg4 -s 320x180 -r 20 -b 256k
  -acodec aac -ac 2 -ar 44100 -ab 56k -strict experimental -y OUTPUT.240.3gp
Спойлер
FFmpeg version 0.6-alt0.svn24911.M50P.1, Copyright (c) 2000-2010 the FFmpeg developers
  built on Nov 19 2010 13:24:46 with gcc 4.4.1 20090725 (ALT Linux 4.4.1-alt3)
  configuration: --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/lib --mandir=/usr/share/man --enable-gpl
 --enable-postproc --enable-pthreads --enable-shared --enable-static --enable-libvorbis --disable-libfaac
 --enable-libxvid --enable-libx264 --enable-libmp3lame --enable-libgsm --enable-libdc1394 --enable-zlib
 --disable-mpegaudio-hp --enable-mmx --disable-iwmmxt --disable-memalign-hack --enable-ffserver
 --enable-ffplay --disable-libdirac --enable-libschroedinger --enable-avfilter --disable-avisynth --disable-libnut
 --enable-libtheora --enable-version3 --enable-libopencore-amrwb --enable-libopencore-amrnb
 --enable-hardcoded-tables --enable-runtime-cpudetect --enable-x11grab --enable-bzlib --disable-ffprobe
 --enable-libvpx --enable-libv4l2 --disable-nonfree --enable-librtmp --disable-debug
 --extra-cflags='-pipe -Wall -O2 -march=i586 -mtune=i686 -frename-registers -DRUNTIME_CPUDETECT'
 --extra-version=alt0.svn24911.M50P.1
All the errors with this package you should report
to ALT Linux bugzilla (https://bugzilla.altlinux.org)!
  libavutil     50.24. 0 / 50.24. 0
  libavcore      0. 6. 0 /  0. 6. 0
  libavcodec    52.86. 1 / 52.86. 1
  libavformat   52.78. 3 / 52.78. 3
  libavdevice   52. 2. 1 / 52. 2. 1
  libavfilter    1.38. 1 /  1.38. 1
  libswscale     0.11. 0 /  0.11. 0
  libpostproc   51. 2. 0 / 51. 2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from INPUT.480.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf52.40.0
  Duration: 01:52:44.76, start: 0.000000, bitrate: 917 kb/s
    Stream #0.0(eng): Video: h264, yuv420p, 854x480 [PAR 1:1 DAR 427:240], 784 kb/s, 23.97 fps, 25 tbr, 25 tbn, 50 tbc
    Stream #0.1(rus): Audio: aac, 44100 Hz, stereo, s16, 127 kb/s
[buffer @ 0x807c610] w:854 h:480 pixfmt:yuv420p
[scale @ 0x820d990] w:854 h:480 fmt:yuv420p -> w:320 h:180 fmt:yuv420p flags:0x4
Output #0, 3gp, to 'OUTPUT.240.3gp':
  Metadata:
    encoder         : Lavf52.78.3
    Stream #0.0(eng): Video: mpeg4, yuv420p, 320x180 [PAR 1:1 DAR 16:9], q=2-31, 256 kb/s, 20 tbn, 20 tbc
    Stream #0.1(rus): Audio: aac, 44100 Hz, stereo, s16, 56 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press [q] to stop encoding
frame=135296 fps= 61 q=2.0 Lsize=  274941kB time=6764.55 bitrate= 333.0kbits/s dup=0 drop=26855   
video:211327kB audio:60235kB global headers:0kB muxing overhead 1.244037%

cat /etc/altlinux-release
ALT Linux 5.0.0 Desktop beta (Inula Helenium)
ffmpeg -version
FFmpeg version 0.6-alt0.svn24911.M50P.1, Copyright (c) 2000-2010 the FFmpeg developers
  built on Nov 19 2010 13:24:46 with gcc 4.4.1 20090725 (ALT Linux 4.4.1-alt3)
ls -1 /usr/lib/libavcod*
/usr/lib/libavcodec.so.52
/usr/lib/libavcodec.so.52.86.1

« Последнее редактирование: 30.07.2013 21:42:50 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Массовые регрессии в avconv?
« Ответ #4 : 31.07.2013 18:10:42 »
После 5.1 community бранча решил посидеть на p6, но ни рожна из этого не выходит:
$ ls ./|grep p6
p6
$ ls ./|grep t6
t6

$ find ./ -name libffmpeg-compat*|grep files
./t6/branch/files/i586/RPMS/libffmpeg-compat-0.6-alt5.M60T.1.i586.rpm

$ rpm -qpl ./t6/branch/files/i586/RPMS/libffmpeg-compat-0.6-alt5.M60T.1.i586.rpm
/usr/lib/libavcodec.so.52
/usr/lib/libavcodec.so.52.97.2
/usr/lib/libavcore.so.0
/usr/lib/libavcore.so.0.14.0
/usr/lib/libavdevice.so.52
/usr/lib/libavdevice.so.52.2.2
/usr/lib/libavfilter.so.1
/usr/lib/libavfilter.so.1.65.0
/usr/lib/libavformat.so.52
/usr/lib/libavformat.so.52.87.1
/usr/lib/libavutil.so.50
/usr/lib/libavutil.so.50.33.0
/usr/lib/libpostproc.so.51
/usr/lib/libpostproc.so.51.2.0
/usr/lib/libswscale.so.0
/usr/lib/libswscale.so.0.12.0

А ведь было же:
# find /var/cache/apt/ -name *ffmpeg-compat*
/var/cache/apt/archives/libffmpeg-compat_1%3a0.6-alt5.M60P.2_i586.rpm

# rpm -ihv /var/cache/apt/archives/libffmpeg-compat_1%3a0.6-alt5.M60P.2_i586.rpm
ошибка: неудовлетворенные зависимости:
        libvpx.so.0 >= set:jeM0Gis2Zftw1SvAronkaaMYsuAluFu5Kv4MFrD6 нужен для libffmpeg-compat-0.6-alt5.M60P.2

# rpm -qf /usr/lib/libvpx.so.1
libvpx-1.0.0-alt0.M60P.1
А после autoclean к зависимостям уже не достучаться.

Надо видно dist-upgrade'ом возвращаться ''домой" на t6.
Похоже по-другому проблему не решить.

В младенчестве p6, пакет libffmpeg-compat был в репозитории, тихо сидел в системе и никому не мешал.
Из p6 быстро улетел в тёплые края.
Помнится из системы улетел, чтобы смоделировать баг (кажется с libx264, - давно уж чтобы вспомнить) и остался только в кеше по старой памяти.