Что нового

Получение информации о видеофайле и запись её в файл

Math

Новичок
Сообщения
85
Репутация
1
Есть скрипт, который создаёт список видеофайлов в заданной директории и записывает в его ини-файл:

Код:
$ListDirMpc = IniRead($INI, "mpc", "dir", "0") ;папка с файлами
$MPCList = @ScriptDir & '\MPCList.ini' ;список файлов

	$mpc_r = _FileListToArray($ListDirMpc, '*', 1)
	$mpc_lc = "[kolichestvo_video]" & @CRLF
	$mpc_lc &= "kolichestvo_video = " & $mpc_r[0] & @CRLF
  
   for $i = 1 to $mpc_r[0]
     $mpc_lc &= @CRLF
     $mpc_lc &= "[file" & $i & "]" & @CRLF
     $mpc_lc &= "video=" & $mpc_r[$i] & @CRLF
   next

 FileWrite ($MPCList, $mpc_lc)


Как сделать так, что бы в каждую секцию file записывалась ещё и информация о видео, т.е:
1. Размер в мегабайтах.
2. Формат.
3. Разрешение.
4. Длительность.

При этом, информация о видео должна записываться в одну строку через разделитель, например:
info= 350Mb | avi | 1024 x 432 | 00:25:15

Как это реализовать, и возможно ли вообще это сделать без использования сторонних программ?
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Math
Вот такой способ можно еще использовать для получения длины в сек и разрешения(размер и расширение, думаю, затруднений не вызовут):

Код:
#Include <DSEngine.au3>
$hForm =GUICreate("GUI")
Engine_Startup(@ScriptDir & "\DSEngine_UDF.dll")
Engine_LoadFile(@ScriptDir & "\Untitled.avi", $hForm)
$aSize = Engine_GetVideoSize()
$Length = Engine_GetLength()
MsgBox(0, "Info",$aSize[0]&"x"&$aSize[1]&" "&$Length)
Engine_Shutdown()
GUIDelete($hForm)


DSEngine.au3 и dll здесь:
http://www.autoitscript.com/forum/topic/97487-directshow-udf/
 
Верх