ZM, который я установил, является видео веткой. Я следовал этим инструкциям, чтобы установить его.
https://github.com/ZoneMinder/ZoneMinder/tree/video
https://github.com/ZoneMinder/ZoneMinder/issues/452
Я ищу водяные знаки на своих записях. Я успешно добился того, чего хочу на обычном ZM. Мне просто нужно это на версии ветки MP4 ZM. Я использовал ASR для поиска «ffmpeg» и «mp4», но в zmvideo.pl я нашел только что-то, имеющее отношение к созданию видео … но я думаю, что zmvideo.pl предназначен только для генерации видео из файлов JPEG. Я просто хочу, чтобы водяной знак появился в файле mp4 при его создании.
Короче, после длинного объяснения: где мне искать команды, которые создают файлы MP4 в ZM? или я должен добавить их в кадры JPEG где-то или что-то? извините за нюби … Я потратил как минимум 3 часа на поиски этого, и я на самом деле потею от разочарования. ЛЮБАЯ помощь вообще будет оценена 🙂 Заранее спасибо.
пользователь Shinobi вместо zoneminder. Он встроен. http://shinobi.video
Не уверен, почему за меня проголосовали. В любом случае я решил свою проблему без непосредственного редактирования сценария создания. Это водяные знаки, конвертирует видео в webm и удаляет MP4. Я уже некоторое время тестирую, и кажется, что файлы MP4 размером 200 МБ уменьшатся до 22 МБ или меньше, когда в WebM того же качества. Это скрипт PHP Shell, который я запускаю на cron каждый час.
<?php
echo'Watermarking and Converting to WEBM. Storage Preservation Addon.'."\n";
require 'zcon.php';
//VIDEO WATERMARK
$nSql = "select M.*,M.Name As MName,E.* from Monitors as M inner join Events as E on (M.Id = E.MonitorId) where";
$nSql .= " E.DefaultVideo LIKE '%.mp4' AND E.Name != '%New Event%'";
$nResult = $conn->query($nSql);
if ($nResult->num_rows > 0) {
while($n = $nResult->fetch_assoc()) {
shell_exec("avconv -i ".getEventDefaultVideoPath($n)." -qscale 0 -vf 'movie=/usr/share/zoneminder/images/watermark.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]' ".goEventToDir($n).$n['Id']."-video.webm && rm -rf ".getEventDefaultVideoPath($n));
$msql = "UPDATE Events SET DefaultVideo='".$n['Id']."-video.webm' where Id = '".$n['Id']."'";
if ($conn->query($msql) === TRUE) {echo getEventDefaultVideoPath($n)." --> ".goEventToDir($n).$n['Id']."-video.webm"."\n";}
}
}else{echo 'No MP4 found'."\n";}
$conn->close();
?>
Других решений пока нет …