VVS1234 писал(а):
Eugene писал(а):
Возможно будет полезно: в ссылке на медиа-ресурс могут быть параметры
Код:
?transcoding=1×tart=количество_секунд
Т.е. плейлист можно сформировать скриптом.
Конечно, было бы полезно... Но, увы, нужны объяснения.
1) Правильно сформированная ссылка должна выглядеть так:
192.168.0.19:45397/MediaServer/VideoItems/765c8fb80fc4ba87b04060b79e7b1011.mpg?transcoding=1×tart=600
?
2)эти параметры обрабатываются автоматом или их надо перехватывать веб-скриптом?
Я попробовал вышеприведенную ссылку -- увы, воспроизводит с начала.
Параметры обрабатываются HMS-сервером и работают, но есть проблема с продолжением транскодирования по предыдущему запросу при смене значения timestart, возможно с этим и столкнулись.
По поводу создания плейлиста по папке "Интервал 01 минута", простого пути не нашлось, основная проблема - папки "Интервал 01 минута" еще нет, когда требуется плейлист и классы не поддерживают требуемую функциональность (форсированное создание дочерних элементов).
Шаблон для поиска папки "Интервал 01 минута" в скрипте Web-интерфейса, ссылка на плейлист в строке HmsLogMessage(...
Код:
procedure CheckChildItems(aMediaItem: THmsScriptMediaItem);
begin
if not aMediaItem.HasChildItems then try
HmsDownloadUrl('http://' + ServerAddress + aMediaItem.WebLink(aMediaItem));
except end
end;
function FindIntervalFolder(aMediaItem: THmsScriptMediaItem): THmsScriptMediaItem;
var
i: Integer;
MediaItemFolder, TranscodingFolder: THmsScriptMediaItem;
begin
Result := nil; TranscodingFolder := nil;
for i := 0 to CurrentMediaItemList.Count - 1 do
if CurrentMediaItemList[i].Properties[mpiTitle] = 'Транскодирование' then begin
TranscodingFolder := CurrentMediaItemList[i]; Break
end;
if TranscodingFolder <> nil then begin
CheckChildItems(TranscodingFolder);
MediaItemFolder := TranscodingFolder.FindItemByProperty(mpiTitle, '(T) ' + aMediaItem.Properties[mpiTitle]);
if MediaItemFolder <> nil then begin
CheckChildItems(MediaItemFolder);
Result := MediaItemFolder.FindItemByProperty(mpiTitle, '(T) Интервал 01 минута ');
if Result <> nil then
HmsLogMessage(1, 'http://' + ServerAddress + aMediaItem.WebLink(Result)); // Воспроизведение Всех
end
end
end;