Привет. Сформировался у меня вопрос следующего плана:
Есть IP-камера, отдающая RTSP-поток разрешением 1920х1080. Битрейт не помню, но шото около 4Мбит\с.
Этот поток читается программкой motion, которая формирует с RTSP MJPG-стрим с целью показа через браузер, кроме этого motion пишет ужатое видео через extpipe и ffmpeg.
Этот motion какого-то хрена жрет процессорное время. 175%-200% и так далее.
Когда он запущен на x86-архитектуре (Целик J1800) - то разумеется это терпимо, хотя тормозят клиентские сайты на вордпрессе. Терпимо тормозят. MJPG-поток отдается нормально. Сколько FPS хочу - столько и дает.
Но когда он запущен на ARM (Cubietruck, Allwinner A20) - уже тормозит сам MJPG. 1-2 FPS.
Собирал из исходников на обоих девайсах.
Беглый гуглеж в интернете дает ссылки на лабуду стиля «Уберите детектирование движения чтобы получить прирост скорости». Ага, я и камеру могу отключить, тогда скорость еще выше станет.
Конфиг motion, касаемый камеры:
netcam_url rtsp://192.168.88.10:554/user=admin&password=&channel=1&stream=0?.sdp
stream_port 10015
stream_maxrate 10
stream_localhost off
stream_quality 10
text_right %d.%m.%Y_%H:%M:%S
width 1920
height 1080
framerate 10
auto_brightness off
minimum_frame_time 0
threshold 2500
threshold_tune off
lightswitch 0
minimum_motion_frames 5
gap 0
max_mpeg_time 0
output_all off
output_normal best
output_motion off
quality 100
ppm off
emulate_motion on
target_dir /backup/videos
movie_filename %d.%m.%Y
use_extpipe on
extpipe ffmpeg -framerate 4 -y -f rawvideo -pix_fmt yuv420p -an -video_size 1920x1080 -i pipe:0 -vcodec flv -b:v 800k -filter:v "setpts=0.4*PTS" -r 4 -f flv /backup/videos/%d.%m.flv
Сети на устройствах обе гигабитные, воткнутые в один и тот же роутер что и камера.
Я бы поверил в ресурсоемкость стримера или перекодирования, но блин, в IP-камерах стоит одноядерник на частоте 500Мгц и 64 Мб памяти. Что-то я делаю не так.
Подскажите пожалуйста, можно ли каким-то образом уменьшить потребление процессора этим motion ?
Thnx!