LINUX.ORG.RU

FFmpeg + плата видеозахвата Orient HW-504


0

1

Имеется четырехканальная плата видеозахвата Orient HW-504. К ней подключены четыре аналоговых чернобелых камер Sony KPC-S190S.

Видео снимаю как и всегда FFmpeg (v 0.9.1):

ffmpeg -pixel_format rgb24 -video_size 720x576 -framerate 25 -f rawvideo -i /dev/video1 -qmin 1 -qmax 3 -vb 500k file_name.avi

И вот тут непобедимый глюк какой-то. В любой момент процесс кодирования может прерваться без всяких ошибок. Как будто достигнут конец потока источника. Опции -loglevel ничего не дают. Может есть у FFmpeg опция непрерывно «черпать» из источника данные, даже если там апокалипсис?

P.S.: VLC воспроизводит нормально и сколько угодно по времени. Другие версии FFmpeg (0.8.9 например) ведут себя так же.

Deleted

Последнее исправление: Deleted (всего исправлений: 2)

ман strace

anonymous
()

А mplayer/mencoder себя так же ведет?

P.S. Хорошо, что v4l2 «починили»: пару лет назад я эту плату «завести» не смог (точнее, работал только один источник).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Точно. Сейчас попробую. Часик погоняю. Можно конечно было бы при помощи VLC кодировать - но 80-90% загрузки процессора это слишком, против FFmpeg - 13% на канал (Sempron 2.2Ггц).

А драйвер/исправление для этой карточки ещё год назад в основную ветку ядра включили. Единственное, так как она без своего firmware, то она ни как не сообщает о себе. И поэтому приходится прописывать в /etc/modprobe.d/orient-HW504.conf

[code] options saa7134 card=100,100,100,100 [/code]

Deleted
()
Ответ на: комментарий от Eddy_Em

Ну что же. Видимо FFmpeg старается очень «аккуратно» кодировать исходный источник и боится когда фреймы приходят битые.

Mencoder тупо пропускает такие фреймы (что видно в логе), за счет этого работает стабильней.

Если бы научить FFmpeg пропускать такие фреймы (а это он вроде может через фильтры), то не было бы этого треда.

Вобщем сегодня победил Mencoder!

Deleted
()

VLC - вообще неожиданно слил обоим по ресурсоёмкости.

Deleted
()
Ответ на: комментарий от Eddy_Em

Рано радовался. Теперь после трех часов кодирования в четыре экземпляра mencoder'a - выдает

mencoder video buffer full - dropping frame

Система встает колом. Это при 4 Гигах памяти! Интересно где этот видеобуфер хранится.

Deleted
()
Ответ на: комментарий от Deleted

Хм, а если своим попробовать (дергать по одному кадру и проверять, что там происходит)?

А, еще можно попробовать сменить кодек: возможно, mencoder «захлебывается» промежуточной служебной информацией.

И еще можно использовать не mencoder, а mplayer с опцией dumpstream (а уже после записи можно пережать).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Проблема как появилась так и исчезла :) После перезагрузки уже вторые сутки пошли как работает как часы - и память в норме с загрузкой CPU.

Ах да - всё же использовал параметр buffersize=64. Может это помогло.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.