FastStart ja MP4box utiliit

.MP4 video veebikõlbulikuks tegemine

FastStart aken:

******************************************************************
* MP4BOX utiliidi kaivitamine.  (C) 2013 A.Aaslo                 *
* See lukkab MP4-video MOOV atomi faili algusse, mis teeb video  *
* sobivaks veebi jaoks: kohene start brauseri flashplayeris,     *
* niipea kui faili algusosa on veebist loetud.                   *
******************************************************************
Soovid jatkata [Y,N]?_

Paigaldamiseks lae alla 'MP4_FastStart_shell-ext.zip' (lehekülje allosas), paki lahti ja käivita INSTALL.vbs

Automaatselt tehakse ära:
1) Kopeeritakse fstart.cmd ja mp4box.exe %APPDATA%\FastStart alamkataloogi. Selleks APPDATA kataloogiks on tavaliselt
C:\Documents and Settings\kasutajanimi\Application Data (Win-XP) või
C:\Users\kasutajanimi\AppData\Roaming (Vista, Win-7). Skript leiab selle automaatselt, mis kettal ja mis nimega ta konkreetselt mingil kompuutril ja mingil kasutajal on.

2) Järgmine samm - loetakse Windowsi registrist .MP4 videofaili assotsiatsiooni, määratluse-string ja registri teises kohas just selle stringi juurde kirjutatakse Windowsi 'shell'i lisavõti "FastStart" mille käsureaks on fstart.cmd käivitus.
Selle .vbs (Visual Basic Script) installija juures tuleb mõned korrad OK nuppu vajutada. Windowsi keskkonda ehk SHELL'i tekib uus valik - kui MP4-faili peal klõpsida. Vaikimisi valik menüüs on endiselt Open, (või Play) lisandub FastStart konvertimise võimalus.

Lisa-utiliit:
findmoov.cmd on lihtne skript, mis otsib MP4-failide seest MOOV blokki ja näitab ära, kas see on faili alguses, [7][8][9][10] väikesed 10 piires numbrid (ka [10][12])
või siis faili lõpus,
[3678] [45776] [3466576] - tunduvalt suurem number
Kui suur on see konkreetne number, see sõltub videofaili pikkusest. findmoov.cmd kopeeri kuskile MP4 failidega videokataloogi ja klõpsi seal käima. Läheb minut-paar aega, kuni ta läbi kammib neid, näitab aknas ära, mis seis on.

***

Peale installimist
1) Seda fstart.cmd käivitust tehakse iga kord, kui kasutaja valib mõne .MP4-faili parema hiireklahvi menüüst: "FastStart"

2) fstart.cmd käivitab omakorda MP4box-i
mp4box.exe -inter 0.5 -v minuvideo.mp4 -out mp4box-tempfile.mp4
(See "minuvideo.mp4" on käsurea argumendiks, seda hakkabki mp4box konvertima) fstart.cmd skript on tehtud nii, et mp4box.exe kirjutab uue video-faili ja jätab originaali tagavaraks, kui miskit untsu läheb, siis saab sealt taastada.
Vastasel korral võib juhtuda, et kui väliselt .MP4 laiendiga video EI OLE sisemiselt tegelikult MP4, vaid miski muu videotüüp, siis videofail hävineb.

MP4box töötab õigesti ainult päris MP4 video peal.
.FLV videot EI OLE VAJA selliselt konvertida, see on algusest peale juba selline konteineri-formaat, et mõeldud just netis striimimiseks. Tema andmete blokk asub alati faili alguses. 'FastStart' menüüvalik ilmub AINULT .MP4 faili peal, kuid mitte kusagil teise failitüübi juures.

On tehtud ka UnInstalli võimalus. uninstall-fstart.vbs on VisualBasic skript, mis eemaldab FastStart võtmed ja kirjed Registrist. Pisikesed failid mp4box.exe ja fstart.cmd võib soovi korral hiljem käsitsi kustutada.
Märkus: installatsioon töötab Win-XP, Vista ja Win-7 puhul, [testitud Win-7 peal], Win-8 puhul andis VB WindowsScriptHost veateate, registrivõtmete juures. Asja uuritakse...
(Asi võib olla ka kasutaja admini-õigustes registrisse kirjutada, kui installi skript käivitada)
Igatahes fstart.cmd + mp4box.exe koos töötavad igal juhul, kui konverditava faili nimi käsitsi käsurealt anda - juhul kui seda ShellExtensioni paika panna ei saa.

 

MP4 video MOOV atom ehk MOOV blokk

MOOV atom on MP4 faili sees olev struktuuri kirjeldav blokk, kus on kirjas video-fali andmed: kaadri mõõtmed WxH, sisemised andme-striimid ja pakkimise viis, striimide 'interleave'; videokoodek, helikoodek, kaadrisagedus, heli kvantimissagedus, video bitikiirus, heli bitikiirus; striimid mis seal veel on lisaks: ntx teine(kolmas) heliriba, subtiitrite voog(või mitu), pildid, igasugune muu metainfo.

Siin paremal on näha pildid, mis võetud LISTER-viewer aknast, moov bloki algus leiti faili lõpust (tavaline, veebis striimimiseks mitte-optimiseeritud) ja teine kus moov blokk on päris faili alguses, ca 20...30-s bait lugedes faili esimesest baidist.

Kui nüüd selline MP4 fail on veebiserveris ja internetibrauseri flashplayer hakkab seda tõmbama, siis enne ei saa videot näitama hakata, kui KOGU fail on kohale jõudnud, et lõpus olevast MOOV blokist lugeda faili andmed, MIDA ja KUIDAS näitama hakata. (Kõvakettal olevast failist loetakse ka lõpus olevad andmed hetkeliselt, sekundi murdosaga. Internetis aga faililõpp alles tulemas, pika filmi puhul vb mitukümmend minutit)

Kui aga nihutada MOOV blokk faili algusse, siis flashplayer saab juba tõmbamise alguses video andmed kätte ja saab KOHE näitama hakata, ülejäänud fail venib kohale vaatamise käigus. (soovitav on, et internetiühenduse kiirus oleks kiirem kui videofaili video/audio striimide kogukiirus.)

Suurtes videosaitides, nagu YOUTUBE, VIMEO, ka Facebook - ongi failid konverditud selliseks, peale seda, kui kasutaja on mingi video üles laadinud. Kui sealt alla laadida mõni selline video Youtubest või mujalt, siis üle vaadates selgub, et neil ongi MOOV faili alguses !!!

What is ShellExtension?
Windows shell: Environment, where user interacts with operating system.
Shell Extension - just basically the additional software to integrate into Windows, like into the right-click context menu, etc.

A.Aaslo - dets.2013

Märkus: Avastatud viga, kus fstart.bat ei suutnud õigesti käsitleda tühikuid sisaldavaid (video)failinimesid. Samuti lisatud käsurea õigsuse kontroll, kas fail mida konvertima tahetakse hakata - üldse eksisteerib?
Parandatud: 26.12.2013

 

 

 

ADVANCED text. (Üldhariv lisa-lugemine)
Mis toimub Windowsi registris

HKEY_CLASSES_ROOT
 |
 |_____.MP4...........................(Default) VLC.MP4
	|___OpenWithProgIds
	|___ShellEx        
		    

Siit LOETAKSE, mis selle .MP4 laiendiga faili string parasjagu on: praegu on VLC.MP4 aga seal võib olla suvaline, MP4_file, MP4VIDEO jne.jne.

Kui see loetud, siis otsitakse kus on sama string registris ja selle juures olevad võtmed, mis määravad, milline on selle faili IKOON ja millised on standard-tegevused, mida selle failiga ette võetakse, kui tema peal hiirega klõpsitakse. Play, Open, Edit, Convert, ... jne. Üks neist on vaikimisi (kaksikklõpsu või ENTER puhul) teised aga saadaval hiire paremklahvi kontekst-menüüst. Enamikel failidel ongi ainult üks valik - OPEN.

kusagil allpool ongi sama võti

HKEY_CLASSES_ROOT
  |
  |____VLC.MP4.......................(Default)  Video MP4
	|
	|___DefaultIcon..............(Default)  mplayerc.exe,1
	   |       
	   |___shell.................(Default)  Open        
		|__Open
		|    |_command.......(Default)  mplayerc.exe "%1"
		|
		|__FastStart
		     |_command.......(Default)  fstart.cmd "%1"

"Open" valik ja vastav käsk on olemas, avada MediaPlayerClassic 'uga Nüüd lisati juurde veel "FastStart" valik ja käsk: avada fstart.cmd skriptiga mis konverdib selle faili ringi MP4box utiliidiga.

"%1" on käsurea argument, antud juhul siis selle faili nimi, mille peal klõpsiti.
See antakse edasi fstart.cmd 'le, selle sees aga antakse omakorda edasi
mp4box.exe 'le

Selline keemia siis Windowsi Registris


VABAVARA
MP4box utiliit, originaalsait.

MP4box download - Videohelp.com

Download FastStart

 

' ****************************************************************************
' Skript .MP4 videofaili kontekstmenüüsse FastStart konvertimiskäsu lisamiseks
' A.Aaslo - 20.dets.2013 
' mp4box.exe ja fstart.cmd kopeeritakse %APPDATA% kataloogi
' 
' ****************************************************************************

Dim filesys 
Dim objShell
Public ins_path
Const USERPROFILE = &H28&
Const PROGRAM_FILES = &H26&
Const APPDATA = &H1a&

   answer = MsgBox ("VBScript " &Chr(169)& " 2013 A.Aaslo" & vbLf & vbLf _ 
      & "Kas alustada installi?", vbYesNo+vbQuestion, "  FastStart ShellExtension install")
   if answer = vbNo then 
      WScript.Quit
   End if

   ' Eelmiste versioonide installi folderid
   ' --------------------------------------
   'Set objShell = CreateObject("Shell.Application")
   'Set objFolder = objShell.Namespace(USERPROFILE)
   'Set objFolderItem = objFolder.Self 
   'Wscript.Echo "Kasutaja nimi ja kasutajaprofiil" &vbLf _ 
   '    & objFolderItem.Name & "  |  " & objFolderItem.Path 
   'ins_path = objFolderItem.Path & "\"
   ' ------------------------------------------------------
   'Set objShell = CreateObject("Shell.Application")
   'Set objFolder = objShell.Namespace(PROGRAM_FILES)
   'Set objFolderItem = objFolder.Self 
   'Wscript.Echo "Folderi nimi ja PATH" &vbLf _ 
   '    & objFolderItem.Name & "  |  " & objFolderItem.Path 
   'ins_path = objFolderItem.Path & "\"
   ' ------------------------------------------------------


    ' ******************************************************************
    ' Application Data - asukoha lugemine (praegune versioon 20.12.2013)
    ' ******************************************************************
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.Namespace(APPDATA)
    Set objFolderItem = objFolder.Self 
    'Wscript.Echo objFolderItem.Name & ": " & objFolderItem.Path 
    ins_path = objFolderItem.Path & "\"


    ' ********************************************************
    ' Uue kataloogi tegemine ja kopeerimine
    ' ******************************************************** 
    set filesys = CreateObject("Scripting.FileSystemObject")
    ' Wscript.echo "objFolderItem.Path: " & objFolderItem.Path 

    ' Kui ei ole kataloogi, siis teha
    if filesys.FolderExists(ins_path & "FastStart") = false Then
       filesys.CreateFolder (ins_path & "FastStart")
    End if

    ' Wscript.echo "Kopeerin failid kataloogi: " & ins_path & "FastStart" 
    If filesys.FileExists("fstart.cmd") Then 
       filesys.CopyFile "fstart.cmd", ins_path & "FastStart\"
    Else
       MsgBox "Couldn't find 'fstart.cmd'", vbCritical, "  Error"
    End If 

    If filesys.FileExists("mp4box.exe") Then 
       filesys.CopyFile "mp4box.exe", ins_path & "FastStart\"
    Else
       MsgBox "Couldn't find 'mp4box.exe'", vbCritical, "  Error"
    End If 

    MsgBox "Failid 'fstart.cmd' ja 'mp4box.exe' kopeeritud" & vbLf _
           & ins_path & "FastStart" & vbLf & "kataloogi", vbInformation, "  Failide kopeerimine:"
    set objShell = Nothing


  ' ************************
  ' Registrikirjete tegemine
  ' ************************
  Dim strMP4Type
  strMP4Type = "HKEY_CLASSES_ROOT\.mp4\"
  Set objShell = WScript.CreateObject("WScript.Shell")

  Set WshShell = CreateObject("WScript.Shell")
  myKey = "HKEY_CLASSES_ROOT\" & objShell.RegRead(strMP4Type) & "\shell\FastStart\command\"

  WScript.Echo ".MP4 videofaili registreeritud nimi on praegu:  " & objShell.RegRead(strMP4Type) & vbLf & vbLf _
          & "Kirjutan lisaks uue registri-võtme: " & vbLf _
          & "————————————————" & vbLf _
          & myKey & vbLf & "(Default) = " & ins_path & "FastStart\fstart.cmd ""%1""" 

  WshShell.RegWrite myKey, ins_path & "FastStart\fstart.cmd ""%1""","REG_SZ"


  dummy = MsgBox (".MP4 videofaili puhul on nüüd parema hiireklahvi kontekst-" & vbLf _ 
  & "menüüs valik ·FastStart·, mis käivitab MP4Box utiliidi video netikõlbulikuks konvertimiseks." & vbLf & vbLf _
  & "'mp4box.exe' ja 'fstart.cmd' asuvad " & ins_path & "FastStart kataloogis" & vbLf & vbLf _ 
  & ":::::::::::::::::::::: " & Chr(169) & " Aivar Aaslo 2013 ::::::::::::::::::::::" , _ 
   vbInformation+vbOKOnly, "  FastStart paigaldatud !") 


  Set WshShell = Nothing
  Set objShell = Nothing
  WScript.Quit

Popup Blocker
 

Javascript Popup Blocker - crx 30 kB (2013)

Chrome extension. Chrome brauseri laiendus. Blokeerib ka kõige vastikumad popup-aknad, mida ei blokeeri ei Chrome sisseehitatud seadetest lülitatav sätting ega ka AdBlock Plus. (Pr0nsites)

Kui siit lehelt koheselt installida ei lase, siis lae alla see .CRX (ChRome-eXtension) fail, ava brauseris vaheleht chrome://chrome/extensions/ ja lohista allalaetud .CRX fail sinna aknasse, kui küsib, kas lubada - siis luba. OKI-DOKI
Fail saadud Chrome webstorest, sellel on veidi ringi tehtud CONFIG akna kujundus, fondid pisemaks ja muud iluravi.