Bug 48692 - Видео событий в форматах mp4, swf, mov скачиваются с размером 0 байт в событиях с id > 1
Summary: Видео событий в форматах mp4, swf, mov скачиваются с размером 0 байт в событи...
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: zoneminder (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-12-05 16:50 MSK by Artem Varaksa
Modified: 2023-12-05 16:50 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Artem Varaksa 2023-12-05 16:50:57 MSK
Шаги
====

1. Развернуть zoneminder на сервере

2. В браузере перейти по адресу http://<server-ip>, внизу страницы из выпадающего списка выбрать APPLY, на открывшейся странице нажать Add

3. Настроить параметры:
Вкладка General
* Source Type: Ffmpeg
* Function: Mocord
Вкладка Source
* Source Path: rtsp://<camera-ip>
* Method: UDP
* Capture Resolution (pixels): 1280x720
Нажать SAVE

4. Нажать на название камеры, под изображением нажать на New Event.

5. В открывшейся странице нажать на кнопку "Generate Video" (значок с камерой).

6. Выбрать формат mp4, swf или mov и нажать на такой же значок "Generate Video".

7. Дождаться завершения генерации файла (за прогрессом можно следить с помощью команды вида # tail -f /var/lib/zoneminder/events/1/<date>/<event-id>/ffmpeg.log).

8. Скачать полученный файл, нажав в списке кнопку Download.

(на данном этапе видео корректное)

9. Перейти в другое событие (может быть необходимо подождать 10 минут до окончания первого). Повторить шаги 5-8.

Фактический результат
=====================

В списке файл имеет ненулевой размер, различный для разных форматов. Но для форматов mp4, swf, mov при скачивании фактический размер файла получается 0 байт.

В логе веб-интерфейса отображаются ошибки:

> 12/5/23, 4:44:59 PM GMT+3	zms_e4		10540	ERR	Can't send /var/lib/zoneminder/events/1/2023-12-05/4/00039-capture.jpg: Broken pipe	zm_eventstream.cpp	731
> 12/5/23, 4:45:00 PM GMT+3	web_php		10535	ERR	Download 0, file: /var/lib/zoneminder/events/1/2023-12-05/4/Event-4-r1-s1.mp4	skins/classic/views/video.php	86

При корректной загрузке последняя ошибка тоже отображается, но "Download 1":

> 12/5/23, 4:46:50 PM GMT+3	web_php		7722	ERR	Download 1, file: /var/lib/zoneminder/events/1/2023-12-05/1/Event-1-r1-s1.mp4	skins/classic/views/video.php	86

При корректной загрузке mov отображается "Download 2", не очевидно, что именно означает эта цифра.

Ожидаемый результат
===================

Размер скачанного файла соответствует указанному. Видео воспроизводится.

Дополнительно
=============

Если попробовать удалить видео в исходном событии, а затем сгенерировать снова, то оно опять генерируется корректно. Возможно, проблема именно в событиях с id > 1.

Само видео на сервере (например, /var/lib/zoneminder/events/1/2023-12-05/4/Event-4-r1-s1.mp4) корректное и если передать его с помощью scp, воспроизводится успешно.

С другими форматами (mpg, mpeg, wmv, asf, avi) такой проблемы нет. Видео скачивается и воспроизводится в VLC.

С оставшимся форматом 3gp другая ошибка: https://bugzilla.altlinux.org/46708.

Воспроизводимость
=================

Ошибка воспроизводится на виртуальных машинах:

[p10] server-10.1-x86-64
zoneminder-1.36.33-alt1.1.x86_64
ffmpeg-4.4.4-alt1.x86_64

[sisyphus] server-10.1-x86-64
zoneminder-1.36.33-alt2.x86_64  
ffmpeg-6.0.1-alt1.x86_64

Для скачивания и воспроизведения видео использовалась реальная машина:

[p10] kworkstation-10.2.1-x86-64
firefox-esr-115.4.0-alt1.x86_64
chromium-119.0.6045.105-alt0.p10.1.x86_64
chromium-gost-110.0.5481.177-alt1.p10.1.x86_64
vlc-3.0.18-alt3.x86_64