如何将时间码刻录到电影文件中?

如何将时间码刻录到电影文件中?

我有一个电影文件,需要显示时间码(播放时间)。它必须“刻录”到视频中。我该怎么做?

答案1

您可以使用艾维合成

这是一个非常强大的命令脚本,用于在线处理视频,而且是免费的。如果您的视频不是 .avi 格式,您可以使用 AviSynth 的 DirectShowSource("myOriginalVideo.xyz") 函数,否则使用 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---------------------------------------------------------------------------

答案2

我想这就是你要找的东西:

Timecode Commander 是一个 GUI 和命令行工具,用于在 Windows Media (.wmv) 格式的视频顶部刻录时间码。

对于编辑、转录或字幕社的往返代理非常有用。

相关内容