时间代码操纵库

timecode的Python项目详细描述


关于用于处理smpte时间码的python模块。支持23.98、24、25、29.97、
30、50、59.94、60帧速率和毫秒(1000 fps)。

您应该
不要同时使用这两个库(pytimecode没有维护,并且已经知道
错误)。


drop frame计算背后的数学依据是david heidelberger的博客文章。_`大卫海德堡的博客文章:http://www.david heidelberger.com/blog/?p=29

支持不同帧速率的
时间码之间的数学运算。所以:

from timecode import timecode

tc2=timecode('24',,'00:00:00:10')
tc3=tc1+tc2
assert tc3.framerate=='29.97'
assert tc3.frames==12
assert tc3=='00:00:00:11'

因此::

tc4=timecode('24','00:00:00:00')
assert tc4.frames==1

所有其他的都是非
丢弃帧。


时间码库支持以字符串
或元组形式传递的有理帧速率:

assert tc5.framerate=='29.97'

tc6=timecode((30000,1001),'00:00:00;00')
断言tc6.framerate==29.97'

421729315)
assert repr(tc7)="19:23:14:23"


这对于分析openexr中存储的、通过openimageio提取的时间码很有用。

秒数:

tc8=时间码(25,'00:00:00.040')
断言tc8。帧数==1

您可以将任何时间码设置为秒数的分数:

tc9=时间码(24,'19:23:14:23')
assert repr(tc9)='19:23:14:23'

assert repr(tc9)='19:23:14.958'


>使用ffmpeg等工具时,秒的分数非常有用。


实例将显示与smpte标准一致的当前时间代码,但它将在不剪裁的情况下继续计算总帧数。

请向"github"页报告任何错误。

_` github`:https://github.com/eoyilmaz/timecode


帧速率。

**new:*设置用于设置是否将
时间代码表示为小数秒的分数方法。

**update:*更新了reademe,其中包含有关新功能的信息

**fix:*一些合并问题。


1.1.0
==

**new:*支持将"二进制编码的十进制"(BCD)整数传递给
时间码参数,因为它以某些格式存储,如OpenEXR和DPX。
例如,对于通过OpenImageIO从元数据解析时间码很有用。
示例:``Timecode(24421729315)->;19:23:14:23``
https://en.wikipedia.org/wiki/smpte廑u timecode


1.0.1
==

**update:*为防止混淆,为"start廑seconds"参数传递0
将产生一个值"timecode.\u init\uu"方法现在出错。


1.0.0
=

**new:*添加了对传递有理帧速率的支持。24000/1001用于23.97


**new:*添加了新功能的测试。分数秒和
rational帧速率。

**new:*添加了用于更好地比较两个
时间码的方法。

**new:*添加了对帧字段中分数秒的支持,例如在
ffmpeg的持续时间中使用。

***重要提示:**传递小数秒样式的时间码时,
timecode.frs将返回一个表示小数秒的浮点值。对于期望int值


>0.4.2
==

**update:*pypi的版本bump。


>0.4.1
==

**fix:*修复了测试重载运算符的测试。


>0.4.0
=


**设为":"表示不落框,";"对于drop
帧和基于毫秒的时间代码。"
如果"timecode.\uu init\uu()`"start"时间代码传递了一个带错误分隔符的字符串,则它将自动转换。

**update:*所有涉及drop frame和毫秒时间代码的测试现在都已设置
使用新的分隔符。

**new:**``time code.tc_to_string()``添加的方法显示了正确格式化的时间代码。

**new:**``timecode.ms_frame``添加的布尔属性。

**new:**``timecode.\uu init_``现在支持字符串,
帧速率参数的int和float。

<0.3.0
==

**new:*将库重命名为``timecode``。


>0.2.0
==

**new:*从头重写整个库。

**new:*最重要的更改是许可证。现在在以前的实现中定义了license
。库现在是在mit
许可下获得许可的。

**update:**timecode.\uu init\uu()参数已更改,删除了不必要的
"drop\u frame",`` iter_返回``参数。

drop frame可以从``framerate``参数进行解释,并且
``iter_returns``是不必要的,因为对象上的任何迭代都将返回另一个``timecode``实例。

`` timecode.\uu str\uuu()``或
``str(timecode)``或``timecode.\uu repr\uu()``或````timecode``或
```````````````````````````````````````````````````````````timecode.frame s``或
``timecode.frames count``取决于想要摆脱它。

因此,设置"iter"返回"到某个对象并固定输出是不必要的。

**update:*将放置帧计算更新为更好的计算,哪个
是基于david heidelberger在
http://www.davidheidelberger.com/blog/上的博客文章?p=29

**new:*添加了``timecode.``所以现在可以检查两个timecode实例或一个timecode、一个字符串或一个timecode
和一个整数(将检查总帧数)的
将时间码作为字符串
,并将返回一个整数值,该整数值是
时间码中的帧数。

**update:**``timecode.frames_to_tc()``现在需要整数帧数
,并返回4个整数,表示小时、分钟,秒和帧。

***更新:**``timecode.hrs``,``timecode.mins`,``timecode.secs`和
``timecode.frs``属性现在是属性。由于很少检查单个的小时、分钟、秒或帧值,因此它们的值
是用"timecode.frames_to_tc()"方法计算的。但在将来,它们仍可以转换为属性,并且它们的值将在每次更改"timecode.frames"属性时更新(因此添加一个```u frames`
属性,用getter和setter使``frames``成为一个属性,并更新setter中的hrs、mins、secs和frs等)


**update:**removed``timecode.calc_drop_frame()``方法。drop frame
计算是在"timecode.frames_to_tc()`"和"timecode.tc_to_frames()`"方法中完成的。

**update:**更新了"timecode.parse_timecode()``方法,使算法简单得多。

**update:**删除了"timecode"。以这种方式返回项。

**update:**removed``timecode.make`timecode()``方法。这是另一种不必要的方法,因此将其删除。现在使用简单的python string
模板表示字符串。

**new:*添加了"timecode.\uu version.\uuu``字符串,并将该值设置为
"0.2.0"。

**update:*删除了"timecode.set\u int\framerate()`"方法。设置
帧速率将自动设置"timecode.int\u framerate"属性。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java组在不同线程中记录消息   java Wicket挂载404错误页   Java:如何制作对象数组的副本?   类似Windows中的java日期时间选择器   java无法获取JTextField用户输入以搜索文本文件   安卓 Java:如何随机更改背景和字体颜色   Java定时器中的摆动变化延迟   java让Selenium暂停X秒   将响应传递到视图时发生java Nativescript错误   java刷新安卓列表视图的最佳方式是什么?   单java进程的多线程队列/工作线程体系结构   web服务Java NoSuchMethodException   java groupingBy和filter一步到位   java游标。getCount()给定错误   即使引用的文件位于项目根目录中,java PrintWrite仍会持续引发“未找到文件”异常