LINUX.ORG.RU

Как правильно сохранить скриншот с помощью библиотеки ffmpeg?

 ,


0

1

Пытаюсь сохранить скриншот из rtsp потока, картинки с разрешением 320x240, получаются на половину, нижняя часть в вертикальных полосах. Использую raspberry pi3, OS raspbian, nodejs, модуль fluent-ffmpeg.Скриншоты делаю каждые 3 сек, около 20% неудачных, 80% нормальные. Может это быть изза недостатка оперативной памяти(1Гб)? Проц на rasbperry нагружен 5-10%. Тоже самое тестирую на ноуте, все сохраняется правильно.


стуки слышны ? :-)

ps/ приведите чудесный код чтобы можно было делать хоть какие-то выводы.

MKuznetsov ★★★★★
()
Последнее исправление: MKuznetsov (всего исправлений: 1)

Если rtsp по udp и хоть 1 пакет в середине кадра теряется - будет именно такой эффект. Используйте rtsp по tcp, точные опции не подскажу. (Небольшие) cетевые потери по udp - это норма.

GPFault ★★
()

Протестировал на vlc плеере, настроил стрим через rtsp по tcp, но нет, картинки такие же испорченные, некоторые не открываются. Видео захватывается кстати без артефактов, как оригинальное.

https://habrastorage.org/webt/5d/45/b2/5d45b24bac431588260075.jpeg

https://habrastorage.org/webt/5d/45/b2/5d45b252901c1596310735.jpeg

Сам код:

var ffmpeg = require('fluent-ffmpeg');
var command = ffmpeg();
var proc = ffmpeg('rtsp://192.168.0.6:8554/')
        .outputOptions(['-f image2', '-vframes 1', '-vcodec png', '-f rawvideo', '-s 320x240', '-ss 00:00:01'])
        .output('/home/pi/Documents/rtsp/img.png')
        .run();

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

Т.е. он пытается выхватывать из живого потока произвольные куски?

Вот и хватает что схвтилось.

Может попробовать через decimate фильтр?

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

.outputOptions(['-f image2', '-vframes 1', '-vcodec png', '-f rawvideo', '-s 320x240', '-ss 00:00:01'])

.outputOptions(['-f image2', '-vframes 1', '-update 1', '-s 320x240'])

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