Bug 27305

Summary: ffmpeg падает при запуске трансляции потока Web-камеры.
Product: Sisyphus Reporter: Roman Savochenko <rom_as>
Component: avconvAssignee: Sergey Bolshakov <sbolshakov>
Status: CLOSED WONTFIX QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: viy, zerg
Version: unstable   
Hardware: all   
OS: Linux   

Description Roman Savochenko 2012-05-06 15:04:10 MSK
Пробовал при разных конфигурациях /etc/avserver.conf.
Вызывал ffmpeg так:
ffmpeg -s 352x288 -r 30 -f video4linux2 -i /dev/video0 http://localhost:8090/feed.ffm

В случае конфига avserver по умолчанию, получаю падение:
[roman@roman ~]$ ffmpeg -s 352x288 -r 30 -f video4linux2 -i /dev/video0 http://localhost:8090/feed1.ffm
ffmpeg version 0.8.1-alt0.M60P.1 (git.5effcfa7), Copyright (c) 2000-2011 the Libav developers
  built on Apr 30 2012 04:09:39 with gcc 4.5.3 20120111 (ALT Linux 4.5.3-alt1)
This program is not developed anymore and is only provided for compatibility. Use avconv instead (see Changelog for the list of incompatible changes).
[video4linux2 @ 0x8067a80] Estimating duration from bitrate, this may be inaccurate
Input #0, video4linux2, from '/dev/video0':
  Duration: N/A, start: 2967.144422, bitrate: 36495 kb/s
    Stream #0.0: Video: rawvideo, yuv420p, 352x288, 36495 kb/s, 30 tbr, 1000k tbn, 30 tbc
Incompatible sample format '(null)' for codec 'mp2', auto-selecting format 's16'
Incompatible sample format '(null)' for codec 'libmp3lame', auto-selecting format 's16'
Output #0, ffm, to 'http://localhost:8090/feed1.ffm':
    Stream #0.0: Video: [0][0][0][0] / 0x0000, yuv420p, q=0-0, 1000k tbn
    Stream #0.1: Video: [0][0][0][0] / 0x0000, rgb48be, q=88--1217438336, -1231965 kb/s, 1000k tbn, -0.01 tbc
    Stream #0.2: Audio: libmp3lame, 22050 Hz, 1 channels, s16, 64 kb/s
    Stream #0.3: Video: msmpeg4, yuv420p, 352x240, q=2-31, 256 kb/s, 1000k tbn, 15 tbc
Could not find input stream matching output stream #0.2
*** glibc has detected an error in ffmpeg: free(): invalid pointer: 0x08067260 ***
======= Backtrace: =========
/lib/libc.so.6(+0x6b9da)[0xb68269da]
/lib/libc.so.6(+0x6d313)[0xb6828313]
/lib/libc.so.6(cfree+0x71)[0xb682b591]
/usr/lib/libavutil.so.51(av_free+0x1b)[0xb696f15b]




В случае кофига отсюда http://habrahabr.ru/post/78677 получаю:
[roman@roman ~]$ ffmpeg -s 352x288 -r 30 -f video4linux2 -i /dev/video0 http://localhost:8090/feed.ffm
ffmpeg version 0.8.1-alt0.M60P.1 (git.5effcfa7), Copyright (c) 2000-2011 the Libav developers
  built on Apr 30 2012 04:09:39 with gcc 4.5.3 20120111 (ALT Linux 4.5.3-alt1)
This program is not developed anymore and is only provided for compatibility. Use avconv instead (see Changelog for the list of incompatible changes).
[video4linux2 @ 0x8067a80] Estimating duration from bitrate, this may be inaccurate
Input #0, video4linux2, from '/dev/video0':
  Duration: N/A, start: 3082.663825, bitrate: 36495 kb/s
    Stream #0.0: Video: rawvideo, yuv420p, 352x288, 36495 kb/s, 30 tbr, 1000k tbn, 30 tbc
[buffer @ 0x8068380] w:352 h:288 pixfmt:yuv420p
[buffer @ 0x8069be0] w:352 h:288 pixfmt:yuv420p
Floating point exception


P.S. Проблемы была и в ранних версиях, была надежда, что её в новой версии исправили.
Comment 1 viy 2012-05-06 17:20:07 MSK
Это надо на самой последней версии 0.8.2 (которая в Сизифе) проверить, 
воспроизводится ли там баг.

Вы сможете локально пересобрать пакет с libav из Сизифа,
установить и проверить?
Comment 2 Roman Savochenko 2012-05-06 17:47:48 MSK
(В ответ на комментарий №1)
> Это надо на самой последней версии 0.8.2 (которая в Сизифе) проверить, 
> воспроизводится ли там баг.
Я бы проверил если-бы сборка в Сизифе была нормальна. А так попытка установить avserver сообщает:
"Зависит от: libavformat53 (= 1:0.8.2-alt1)
Comment 3 viy 2012-05-06 20:30:10 MSK
не надо из Сизифа ставить! Возьмите отсюда:
ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/viy/libav/
Comment 4 viy 2012-05-06 23:38:11 MSK
(В ответ на комментарий №3)
> не надо из Сизифа ставить! Возьмите отсюда:
> ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/viy/libav/

Как, получилось?
Comment 5 Roman Savochenko 2012-05-07 08:11:25 MSK
> не надо из Сизифа ставить! Возьмите отсюда:
Я имел в виду установку версии avserver для Сизифа на Сизифе.

> > не надо из Сизифа ставить! Возьмите отсюда:
> > ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/viy/libav/
> Как, получилось?
Проблема присутствует в том-же объёме.
Comment 6 viy 2012-05-07 11:11:20 MSK
(В ответ на комментарий №5)
> Проблема присутствует в том-же объёме.

Спасибо большое! Получается, бакпортировать 0.8.2 не имеет смысла,
Ошибка присутствует и в Сизифе.

Я перевешиваю баг на Сизиф, и, когда проблема будет исправлена в Сизифе,
сделаю бакпорт.
Comment 7 Sergey Bolshakov 2012-05-07 16:03:39 MSK
avconv -f video4linux2 -i /dev/video0 -f avi -y /dev/stdout |avplay -f avi -

так видно ?
Comment 8 Roman Savochenko 2012-05-07 17:08:09 MSK
(В ответ на комментарий №7)
> avconv -f video4linux2 -i /dev/video0 -f avi -y /dev/stdout |avplay -f avi -
> так видно ?
Видно.
Comment 9 Sergey Bolshakov 2012-05-07 17:53:45 MSK
я так полагаю, к avconv претензий нет.
что до ffserver/avserver, то в апстриме он заброшен годами, если у кого-то
получилось с его помощью что-то сделать, нуу, good for them, если же нет -- врядли мне стоит что-либо по этому поводу предпринимать.
впрочем, пусть пока повисит.
Comment 10 Roman Savochenko 2012-05-08 09:12:50 MSK
(В ответ на комментарий №9)
> я так полагаю, к avconv претензий нет.
> что до ffserver/avserver, то в апстриме он заброшен годами
Ну как-бы падает не avserver, а ffmpeg, который работает через avserver и является частью avconv. :)
Comment 11 Sergey Bolshakov 2012-05-08 13:18:08 MSK
"This program is not developed anymore and is only provided for compatibility.
Use avconv instead" -- переводить нужно ?
Comment 12 Roman Savochenko 2012-05-15 22:20:56 MSK
(В ответ на комментарий №11)
> "This program is not developed anymore and is only provided for compatibility.
> Use avconv instead" -- переводить нужно ?
Thanks, I am understand.

Кстати там по документации ffmpeg кругом и прямо заменён на avconv. Странно тогда почему-бы не бросить прямой линк на avconv вместо ffmpeg.

Запуск: avconv -s 352x288 -r 30 -f video4linux2 -i /dev/video0
Не падает и что-то на сервер шлёт, однако поток в браузерах не воспроизводится, да и проигрывание avconv на сервер через некоторое время замирает.

Наверно таки с сервером проблема.
Comment 13 Sergey Bolshakov 2021-09-23 12:43:16 MSK
avconv больше нет