小编Bal*_*ala的帖子

ffmpeg copyts保留时间戳

我正在尝试修改HLS段传输流,并使用ffmpeg保留其开始时间.但是,即使提到了-copyts,输出也不会保留输入文件的start_time值.这是我的命令行:

ffmpeg  -i fileSequence1.ts -i x.png -filter_complex '[0:v][1:v]overlay[out]' -map '[out]' -map 0:1 -acodec copy -vsync 0 -vcodec libx264 -streamid 0:257 -streamid 1:258 -copyts -profile:v baseline -level 3 output.ts
Run Code Online (Sandbox Code Playgroud)

start_time值始终延迟约2秒.

/Users/macadmin/>ffmpeg -y -v verbose -i fileSequence0.ts -map 0:0 -vcodec libx264 -copyts -vsync 0 -async 0 output.ts
ffmpeg version 2.5.3 Copyright (c) 2000-2015 the FFmpeg developers
  built on Mar 29 2015 21:31:57 with Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.5.3 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= …
Run Code Online (Sandbox Code Playgroud)

ffmpeg h.264

9
推荐指数
1
解决办法
1万
查看次数

从F#调用C#函数

我试图从f#调用这个函数

http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.cloudstorageaccount.setconfigurationsettingpublisher.aspx

功能签名是:

CloudStorageAccount.SetConfigurationSettingPublisher
      (Action<string, Func<string, bool>>) : unit
Run Code Online (Sandbox Code Playgroud)

C#调用是这样的:

CloudStorageAccount.SetConfigurationSettingPublisher((configName,
                                                  configSettingPublisher) =>
{
    string configValue = "something"
    configSettingPublisher(configValue);
});
Run Code Online (Sandbox Code Playgroud)

而在F#中,我必须做这样的事情:

let myPublisher configName (setter:Func<string, bool>) =
    let configValue = RoleEnvironment.GetConfigurationSettingValue(configName)
    setter.Invoke(configName) |> ignore

let act = new Action<string, Func<string, bool>>(myPublisher)

CloudStorageAccount.SetConfigurationSettingPublisher(act)
Run Code Online (Sandbox Code Playgroud)

这可以在f#中更简洁地写出来吗?

c# f#

4
推荐指数
1
解决办法
2928
查看次数

FileHelpers 类型中的字段顺序

我正在使用 Filehelpers 读取一个简单的 CSV 文件 - 该文件只是一个键值对。(字符串,int64)

我为此编写的 f# 类型是:

type MapVal (key:string, value:int64) =
    new()= MapVal("",0L)
    member x.Key = key
    member x.Value = value
Run Code Online (Sandbox Code Playgroud)

我在这里遗漏了一些基本的东西,但 FileHelpers 总是假设字段的顺序与我指定的顺序相反 - 如值、键。

let dfe = new DelimitedFileEngine(typeof<MapVal>)
let recs = dfe.ReadFile(@"D:\e.dat")
recs |> Seq.length
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?

csv filehelpers f#

3
推荐指数
1
解决办法
815
查看次数

在F#中包含流中的序列

我有一个接受Stream的功能.我的数据位于一个大型列表中,运行数百万个项目.

有没有一种简单的方法可以在Stream中包装一个序列,在流中返回我的序列块?一种显而易见的方法是实现我自己的流类,它返回序列的块.就像是 :

type SeqStream(sequence:seq<'a>) = 
    inherit Stream()
    default x.Read(buf, offset, count) =
        // get next chunk
        // yield chunk
Run Code Online (Sandbox Code Playgroud)

有没有更简单的方法呢?我没有办法改变接受流的目标函数.

f#

3
推荐指数
1
解决办法
393
查看次数

Seq模块中的聚合函数

我正在尝试向Seq模块添加一些额外的聚合函数.我在看这里列出的一些函数的实现:

https://github.com/fsharp/fsharp/blob/master/src/fsharp/FSharp.Core/seq.fs

其中一个免责声明是"该函数返回一个序列,一旦该序列被迭代,就会消化整个初始序列.因此,该函数不应该用于大序列或无限序列." 许多功能都是如此,例如GroupBy.

  • 第一个问题:是否有方法可以编写可以有效处理大型序列的聚合函数?我知道"大"是主观的; 我只是在寻找编写这些函数的一般模式.

  • 第二个问题:我如何确保像Dictionary这样的集合(在集合函数中定义)被有效地垃圾收集?我理解字典应该在超出范围时收集,但有没有办法明确表明?鉴于字典的范围是保留在函数内,我不能在那上面调用.Clear()吗?

f# dictionary seq

2
推荐指数
1
解决办法
1052
查看次数

标签 统计

f# ×4

c# ×1

csv ×1

dictionary ×1

ffmpeg ×1

filehelpers ×1

h.264 ×1

seq ×1