3

У меня есть файл фильма, который мне нужен, чтобы показать тайм-код (время выполнения). Это должно быть "сожжено" к видео. Как я могу это сделать?

2 ответа2

1

Вы можете использовать AviSynth.

Это удивительно мощный командный скрипт для поточной обработки видео, и он бесплатный. Если ваше видео еще не в формате .avi, вы можете использовать функцию DirectShowSource(«myOriginalVideo.xyz») AviSynth, в противном случае используйте AviSource(«myOriginalVideo.avi»).

Как это устроено:
AviSynth - это язык сценариев. Вы пишете свои команды в простом текстовом файле, который имеет тип файла .avs (например, «myNewVideo.avs»), и сам скрипт становится (новым) воспроизводимым .avi.

Поскольку вывод файла .avs полностью несжатый (видео и аудио), вам нужно будет подать «myNewVidwo.avs» в любой видео кодер, который вам нравится; перепаковать это. VirtualDub очень эффективен и прямолинеен для этапа перекодирования (VirtualDub бесплатен).

Вот скрипт AviSynth, который сделает эту работу. Это помещает H:MM:SS.nnn в верхнем левом углу экрана.

#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---------------------------------------------------------------------------
0

Я думаю, это то, что вы ищете:

Timecode Commander - это графический интерфейс и инструмент командной строки для записи временного кода поверх видео в формате Windows Media (.wmv).

Невероятно полезен для обхода прокси для редакторов, транскрипции или субтитров.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .