Водяные знаки Zoneminder на видео MP4 из пользовательской ветки ZM

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 часов на поиски этого, и я на самом деле потею от разочарования. ЛЮБАЯ помощь вообще будет оценена :) Заранее спасибо.


person moeiscool    schedule 29.12.2014    source источник


Ответы (1)


НОВЫЙ ОТВЕТ

пользователя Shinobi вместо zoneminder. Он встроен. http://shinobi.video

СТАРЫЙ ОТВЕТ

Не знаю, почему за меня проголосовали. В любом случае я решил свою проблему без непосредственного редактирования сценария создания. Он ставит водяные знаки, конвертирует видео в webm и удаляет MP4. Я тестировал в течение некоторого времени, и кажется, что файлы mp4 размером 200 МБ уменьшатся до 22 МБ или меньше в WebM с тем же качеством. Это скрипт оболочки PHP, который я запускаю в 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();
?>
person moeiscool    schedule 30.12.2014