我需要将时间代码刻录到视频中,并且想知道这是否是ffmpeg能够做到的事情?
我正在接管一个现有的PHP项目.我注意到以前的开发人员为整个网站使用了一个index.php页面,目前有10多页.这是我见过的第二个项目.我没有看到这种方法的优势.事实上,似乎它使一切变得复杂,因为现在你不能只是向网站添加新页面并链接到它.您还必须确保使用if子句更新主索引页以检查该页类型,然后加载页面.看起来如果他们只是尝试重用模板,那么只需使用包含页眉和页脚,然后使用引用的那些文件创建每个新页面就更容易了.
有人可以解释为什么会使用这种方法吗?这是我不熟悉的某种形式的MVC模式吗?PHP是第二语言,所以我不熟悉最佳实践.
我曾尝试在谷歌搜索"带有php的单索引页面"等类似的搜索,但我找不到任何好的文章解释为什么使用这种方法.我真的想把这些旧东西踢到路边,而不是沿着那条路走下去,但我想在提出建议之前先做一些合理的推理.
我目前正在使用ffmpeg将各种格式的视频转换为flv文件.还提出了一个请求,即从文件中获取隐藏字幕信息.有没有人有这方面的经验或知道它甚至可以做到.我没有看到任何选项,但我想我会问.
在你开始指向重复之前,我只知道我已经阅读了关于扩展方法的几乎所有关于SO的帖子.我只是想在一分钟内扮演魔鬼的拥护者,考虑替代我的工作意见.
最近我正在研究一个项目,并且需要一种方法作为接口的基础.所以我建议我们写一个扩展方法,它被击落了.说它增加了复杂性并且更难调试.
我当然争论并找到了所有精彩的帖子,这些帖子显示了使用扩展方法的许多原因.不要忘记很多.net框架都使用它们.我们最终没有使用它,因为我被团队推翻了.
但是它让我思考,是否有时候可以使用扩展方法但不应该使用?
我真的想不出任何想法,但我想在这里发帖,看看是否有人能想到为什么不应该使用它们的任何其他原因.
所以我被卡住了.我正在制定一个到期的信用系统.与信用卡里程类似但不完全相同.顺便说一下,我很抱歉这本书,但我需要添加足够的细节来帮助全面了解.
我需要的是一个用户为进行活动积累信用的系统.但他们也可以将这些学分用于活动.如果不使用,则学分将在30天后到期.我似乎被困在如何在每晚运行的批次中准确计算出来.任何语言的任何想法都会受到高度赞赏,因为我似乎只是抓住了一个我无法解决的小细节.以下是数据示例:
7/1:+5 - 用户注册
7/2:+5 - 用户与系统
7/2 交互:-3 - 用户购买活动
7/3:+5 - 用户与系统交互
所以在这一点上,用户已经获得了15个学分,并且花了3个学分.总共12学分.(至少我得到了基本的数学:P)
我要补充的是,目前我们正在尝试使用两个字段:最后处理,下一个处理.因此,假设这是一个新的注册,这个值是:
最后处理日期:7/1
下一个处理日期:8/1
所以现在8/1来了.批次开始并查看超过30天的所有信用.在这一点上是5.
这是它开始变得模糊的地方.
然后,系统应查看过去30天内所花费的所有积分,以查看他们是否正在使用任何积分.因为它们只有在未被使用时才会过期.所以有3个.所以我然后扣除用户2个学分,因为这是30天以上的学分与花费的差异.所以我完成批处理并相应地设置第二天的日期.现在假设他们已经没有花费我了,我开始计算超过30岁的积分,这是5和积分花费再次是3.但我显然不想考虑我昨天考虑的3个学分.什么是不再包括这3个学分考虑的好方法.
那是我被困的地方.
我们正在考虑为过期的积分编写借记记录,以便我们可以跟踪它们,但很难看到我如何在此计算中使用它.
如果你读到这里,谢谢你.如果你甚至在答案上做了一些努力,我将至少给你一个投票的努力.
编辑:
好的@Greg提到了我忘记解决的问题.考虑信用标志的想法.由于以下情形,有效点但不能正常工作:
假设用户在某一天花费10个学分.但是批次考虑的过期积分只累积到5个.那么他还应该剩下5个积分才能没有过期,因为他花了不止一次到期.所以这面旗帜不起作用,因为我们会跳过这5个额外的积分.希望有道理吗?
我继承了一个新系统,我试图对数据进行一些改进.我正在努力改进这个表,似乎无法理解我的发现.
我有以下表结构:
CREATE TABLE [dbo].[Calls](
[CallID] [varchar](8) NOT NULL PRIMARY KEY,
[RecvdDate] [varchar](10) NOT NULL,
[yr] [int] NOT NULL,
[Mnth] [int] NOT NULL,
[CallStatus] [varchar](50) NOT NULL,
[Category] [varchar](100) NOT NULL,
[QCall] [varchar](15) NOT NULL,
[KOUNT] [int] NOT NULL)
Run Code Online (Sandbox Code Playgroud)
该表中有大约220k的记录.我需要返回日期大于特定日期的所有记录.在这种情况下12/1/2009.此查询将返回大约66k记录,运行大约需要4秒.从我过去的系统来看,这似乎很高.特别是考虑到表中的记录很少.所以我想把时间缩短.
所以我想知道什么是一些好的方法来降低它?我尝试在表中添加日期列并将字符串日期转换为实际日期列.然后我在该日期列添加了索引,但时间保持不变.鉴于没有那么多记录,我可以看到表扫描如何快速但我认为索引可以减少时间.
我还考虑过查询月份和年份列.但我还没有尝试过.如果可能的话,我希望将其保留在日期栏之外.但如果不是,我可以改变它.
任何帮助表示赞赏.
编辑:这是我试图运行的测试并测试表的速度.我通常把列放出来,但为了简单起见,我使用了*:
SELECT *
FROM _FirstSlaLevel_Tickets_New
WHERE TicketRecvdDateTime >= '12/01/2009'
Run Code Online (Sandbox Code Playgroud)
编辑2:所以我提到我曾尝试使用包含recvddate数据的日期列创建一个表,但是作为日期而不是varchar.这就是TicketRecvdDateTime列在上面的查询中.我对这个表运行的原始查询是:
SELECT *
FROM Calls
WHERE CAST(RecvdDate AS DATE) >= '12/01/2009'
Run Code Online (Sandbox Code Playgroud) 我试图使用SqlDependency类监视数据库表的更改.虽然我必须遗漏一些东西.我已经按照我在网上看到的所有示例进行了跟踪,并且我已经回顾了本网站上的所有问题.我只是看不到我错过的东西.以下是我在数据库上运行的初始命令,以启用服务代理并创建队列和服务.
CREATE QUEUE ScheduleChangeQueue
GO
CREATE SERVICE ScheduleChangeService ON QUEUE ScheduleChangeQueue ([http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification])
GO
ALTER DATABASE [database] SET ENABLE_BROKER
Run Code Online (Sandbox Code Playgroud)
在C#方面,我创建了一个具有单个静态Setup方法的类,该方法被调用以启动该进程.这是代码:
public class SqlDependencyManager
{
private static bool DoesUserHavePermission()
{
var success = false;
try
{
Program.Log.Info("Retrieving SqlPermission to establish dependency...");
var clientPermission = new SqlClientPermission(System.Security.Permissions.PermissionState.Unrestricted);
// this will throw an error if the user does not have the permissions
clientPermission.Demand();
success = true;
Program.Log.Info("SqlPermission established. Continue setting up dependency.");
}
catch (Exception ex)
{
Program.Log.Error(ex, "SqlPermission not able to be established."); …
Run Code Online (Sandbox Code Playgroud)