Jak mogę nagrać kod czasowy do pliku filmowego?

3

Mam plik filmowy, w którym muszę pokazać kod czasowy (czas działania). Musi być „wypalony” w filmie. Jak mogę to zrobić?

Ronnie Overby
źródło
1
możesz spróbować zapytać o to na stronie home4film.com, która jest witryną QnA audio / wideo. lub jedna z innych stron ze zdjęciami / filmami z tej listy: meta.stackexchange.com/questions/4/list-of-stackexchange-sites
quack
1
to nie znaczy, że twoje pytanie nie jest tutaj mile widziane (dotyczy korzystania z oprogramowania do tworzenia wideo , więc myślę, że jest w porządku), ale te inne strony mogą być lepiej dostosowane do uzyskania odpowiedzi.
szarlatan

Odpowiedzi:

1

Możesz użyć AviSynth .

Jest to niesamowicie potężny skrypt poleceń do przetwarzania wideo w linii i jest bezpłatny. Jeśli Twój film nie jest jeszcze w formacie .avi, możesz użyć funkcji DirectShowSource („myOriginalVideo.xyz”) AviSynth, w przeciwnym razie użyj AviSource („myOriginalVideo.avi”).

Jak to działa:
AviSynth to język skryptowy. Zapisujesz swoje polecenia w prostym pliku tekstowym, który ma typ pliku .avs (np. „MyNewVideo.avs”), a sam skrypt staje się (nowym) odtwarzalnym .avi.

Ponieważ plik wyjściowy .avs jest całkowicie nieskompresowany (wideo i audio), będziesz musiał wprowadzić „myNewVidwo.avs” do dowolnego kodera wideo, który ci się podoba; ponownie skompresować. VirtualDub jest bardzo skuteczny i prosty w procesie ponownego kodowania (VirtualDub jest bezpłatny).

Oto skrypt AviSynth, który wykona zadanie. Umieszcza H: MM: SS.nnn w lewym górnym rogu ekranu.

#BEGIN-------------------------------------------------------------------------
global    xPos = 10
global    yPos = 10
global subsize = 20
global subfont = "Arial Narrow"
#------------------------------------------------------------------------------
function SubtitleTime( obj )
{ 
  obj = ScriptClip( obj, "Subtitle( 
  \   String( chr(32) )
  \ + String( RightStr( String( ((int(current_frame/Framerate)/60)/60) ), 2 ) )
  \ + String( chr(58) )
  \ + String( RightStr( String( String( 0 ) + String( (int(current_frame/Framerate)/60)-(((int(current_frame/Framerate)/60)/60)*60) ) ), 2 ) )
  \ + String( chr(58) )
  \ + String( RightStr( String( String( 0 ) + String( (int(current_frame/Framerate))-(((int(current_frame/Framerate))/60)*60) ) ), 2 ) )
  \ + MidStr( String( (current_frame/Framerate) -  (int(current_frame/Framerate)) ), 2, 4 )
  \ , font=subfont, size=subsize, x=xPos, y=yPos)
  \ ")
  return obj
}
#------------------------------------------------------------------------------
DirectshowSource("myOriginalVideo.avi").SubtitleTime
#END---------------------------------------------------------------------------
Peter.O
źródło