Вход | Регистрация
 

Определение продолжительности видео файлов

Определение продолжительности видео файлов
Я
   NIGHTHUNTER
 
31.12.21 - 11:10
Вывожу содержимое каталога. Там видео файлы. Какую я по ним могу получить информацию ещё? И актуальна ли она будет?
Мне нужно продолжительность этих видеофайлов. А то заметил, что примерно одни и те же размеры, могут в разы отличаться
по продолжительности того что написано в проигрывателе. Мне важно знать, сколько по времени идут эти файлы.
Или эту информацию не получить? Так как она не будет соответствовать действительности?
Пока что завметил, что от размера самих файлов этого не зависит.


&НаКлиенте
Процедура ПутьККаталогуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    Режим                               = РежимДиалогаВыбораФайла.ВыборКаталога;
    ДиалогОткрытия                       = Новый ДиалогВыбораФайла(Режим);
    ДиалогОткрытия.Каталог               = "";
    ДиалогОткрытия.МножественныйВыбор = Ложь;
    ДиалогОткрытия.Заголовок          = "Выберите каталог";
    Если ДиалогОткрытия.Выбрать() Тогда
        ПутьККаталогу        = ДиалогОткрытия.Каталог;
    КонецЕсли;
    ВыводНазванияФайловНаСервере();
КонецПроцедуры
//
&НаСервере
Процедура ВыводНазванияФайловНаСервере()
        МассивФайловКаталога = НайтиФайлы(ПутьККаталогу, "*.mp4");
        //
        ПолучаемыйОбъект     = РеквизитФормыВЗначение("Отчет");
        МакетНазванияФайлов  = ПолучаемыйОбъект.ПолучитьМакет("МакетНазванияФайлов");
        ТДВыводПечати.Очистить();
        ТДВыводПечати.ИмяПараметровПечати     = "ПАРАМЕТРЫ_ПЕЧАТИ_НазванияФайлов";
        ТДВыводПечати.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;
        ТДВыводПечати.АвтоМасштаб               = Истина;
        ТДВыводПечати.ПолеСверху              = 0;
        ТДВыводПечати.ПолеСлева               = 0;
        ТДВыводПечати.ПолеСнизу                  = 0;
        ТДВыводПечати.ПолеСправа              = 0;
        ТДВыводПечати.РазмерКолонтитулаСверху = 0;
        ТДВыводПечати.РазмерКолонтитулаСнизу  = 0;
        ОбластьШапка                          = МакетНазванияФайлов.ПолучитьОбласть("Шапка");
        ТДВыводПечати.Вывести(ОбластьШапка);
        ОбластьСтроки = МакетНазванияФайлов.ПолучитьОбласть("Строки");
        Ном           = 1;
        //
        Для каждого ЭлементМассива Из МассивФайловКаталога Цикл
            ОбластьСтроки.Параметры.Ном           = Ном;
            ОбластьСтроки.Параметры.НазваниеУрока = ЭлементМассива.ИмяБезРасширения;
            ТДВыводПечати.Вывести(ОбластьСтроки);
            Ном = Ном + 1;
        КонецЦикла;
КонецПроцедуры
   acht
 
1 - 31.12.21 - 11:17
ffprobe.exe -h
   NIGHTHUNTER
 
2 - 31.12.21 - 11:26
VLC медиаплеер, Вид-Плейлист-Добавить папку, выбираю этот каталог с видео. И есть колонка длительность.
Где прописана длительность этих видеофайлов. Не знаю на сколько она соответствует действительности.
   NIGHTHUNTER
 
3 - 31.12.21 - 11:40
Нашел такую функцию, буду сейчас ее применять. Получает свойства файла.
   NorthWind
 
4 - 31.12.21 - 11:44
dir > myfiles.txt
   mistеr
 
5 - 31.12.21 - 20:29
avinfo
   Жан Пердежон
 
6 - 31.12.21 - 21:09
Очевидно, что всё от формата зависит. Либо курить форматы/двоичные данные, либо готовое что-то использовать
   NIGHTHUNTER
 
7 - 01.01.22 - 11:49
(6) Я сделал то что хотел. В доступе функция, которая возвращает структуру из свойства файла. Модно передавать параметрами, определенные
названия свойств что бы она возвращала только их.
В этот цикл включил ее использование, и этим обошелся. Сравнил то что она возвратила по первому файлу. Его размер и продолжительность что показывал медиапроигрыватель.

        Для каждого ЭлементМассива Из МассивФайловКаталога Цикл
            ПолученныеСведения = ПолучитьСведенияОФайле(ЭлементМассива.ПолноеИмя, "Продолжительность;Размер");
            ОбластьСтроки.Параметры.Ном                = Ном; 
            ОбластьСтроки.Параметры.НазваниеУрока       = ЭлементМассива.ИмяБезРасширения;
            ОбластьСтроки.Параметры.Продолжительность = ПолученныеСведения.Получить("Продолжительность");
            ОбластьСтроки.Параметры.Размер            = ПолученныеСведения.Получить("Размер");
            ТДВыводПечати.Вывести(ОбластьСтроки);
            Ном = Ном + 1;
        КонецЦикла;
   NIGHTHUNTER
 
8 - 01.01.22 - 11:51
(7+)  Возвращает объект Соответствие, точнее функция.
   pechkin
 
9 - 01.01.22 - 14:19
(8) приведи текст функции
   NIGHTHUNTER
 
10 - 01.01.22 - 15:29
(9) Наберете вот это в поисковике, -

получение свойств файлов в 1с .

В опере стразу первая ссылка на инфостарт. Статья Свойства файла (версия, ширина/высота изображения и т.д.) .

А то я не знаю, что можно что нельзя.

Там у основной функции такой комментарий

// Возвращает объект Соответствие со списком всех ненулевых свойств файла или Неопределено - если свойства определить не получилось

// СписокСвойств - может содержать список необходимых свойств, разделенных точкой с запятой ";"
// Если указано всего одно свойство, то будет возвращено полученное значение, а не список значений!

// Например: ПолучитьСведенияОФайле("c:\windows\notepad.exe", "Версия продукта");
   NIGHTHUNTER
 
11 - 01.01.22 - 15:37

Список тем форума
 
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.