标签: chunks

模糊匹配/分块算法

背景:我有视频剪辑和音轨,我想与所述视频同步.

从视频剪辑中,我将提取参考音轨.我还有另一首曲目,我想与参考曲目同步.desync来自编辑,它改变了每个过场动画的间隔.

我需要操纵目标轨道看起来像(在这种情况下听起来像)ref轨道.这相当于在正确的位置添加或删除静音.这可以手动完成,但是非常繁琐.所以我希望能够以编程方式确定这些位置.

例:

     0         1         2         
     012345678901234567890123
ref: --part1------part2------
syn: -----part1----part2-----
# (let `-` denote silence)
Run Code Online (Sandbox Code Playgroud)

输出:

[(2,6), (5,9) # part1
 (13, 17), (14, 18)] # part2 
Run Code Online (Sandbox Code Playgroud)

我的想法是,从一开始:

Fingerprint 2 large chunks* of audio and see if they match:
    If yes: move on to the next chunk
    If not:
        Go down both tracks looking for the first non-silent portion of each
        Offset the target to match the original
        Go back to the beginning of the loop

# …
Run Code Online (Sandbox Code Playgroud)

algorithm chunks fuzzy-comparison sliding-window

5
推荐指数
2
解决办法
1048
查看次数

R:循环处理大块数据集(GB)?

我在GB中有一个大型数据集,在分析它之前我必须处理它.我尝试创建一个连接器,它允许我循环遍历大型数据集并一次提取块.这使我可以隔离满足某些条件的数据.

我的问题是我无法为规定它为null的连接器创建一个指示器,并在达到数据集的末尾时执行close(连接器).此外,对于第一块提取数据,我必须跳过17行,因为该文件包含R无法读取的标题.

有效的手动尝试:

filename="nameoffile.txt"    
con<<-file(description=filename,open="r")    
data<-read.table(con,nrows=1000,skip=17,header=FALSE)    
data<-read.table(con,nrows=1000,skip=0,header=FALSE)    
.    
.    
.    
till end of dataset
Run Code Online (Sandbox Code Playgroud)

因为我想要避免手动键入上述命令,直到我到达数据集的末尾,我试图编写一个循环来自动化该过程,但这是不成功的.

我尝试使用失败的循环:

filename="nameoffile.txt"    
con<<-file(description=filename,open="r")    
data<-read.table(con,nrows=1000,skip=17,header=FALSE)        
if (nrow(rval)==0) {    
  con <<-NULL    
  close(con)    
  }else{    
    if(nrow(rval)!=0){    
    con <<-file(description=filename, open="r")    
    data<-read.table(conn,nrows=1000,skip=0,header=FALSE)      
  }}    
Run Code Online (Sandbox Code Playgroud)

r connector chunks large-files

5
推荐指数
1
解决办法
3429
查看次数

将块加载到html5视频中

在哪里可以阅读信息并查看将块加载到html5视频中的示例?

场景:
1.用户开始播放大型视频。
2.应下载10-20秒的视频。
3.如果用户观看的是前10秒,则应下载下10秒。因此,如果用户仅观看视频的前9秒,则不会有负载。

如果我们使用这种情况,它将减少服务器负载(在某些情况下)。

例如:
尝试在YouTube上观看视频。他们是这样工作的。尝试加载一半的视频(约3分钟),然后从头开始观看。视频的其他部分直到您到达特定点(在我的情况下,在下载点之前约50秒)才会下载。

我在html5视频中找不到任何缓冲控件。我也找不到在流行的基于html5的视频播放器(如VideoJs,JPlayer)中缓冲的任何控件。

有人知道怎么做吗?

javascript video chunks video-streaming html5-video

5
推荐指数
1
解决办法
3623
查看次数

什么是pandas read_csv中最佳的chunksize以最大化速度?

我使用的是20GB(压缩)的.csv文件,我使用带有10 000 chuncksize参数的pandas pd.read_csv()从中加载了几列.

但是,这个参数是完全随意的,我想知道一个简单的公式是否可以给我更好的chunksize,这将加速数据的加载.

有任何想法吗?

python memory io chunks pandas

5
推荐指数
1
解决办法
4465
查看次数

合并PHP中的文件块

出于教育目的,我想创建文件块上传。你们怎么知道什么时候全部块都上传了?

我尝试从中移出块temp并重命名它们,以便它们以正确的顺序排列,然后与最后一块合并在一起。但是,我想发送的最后一块不是收到的最后一块。因此fopen(),由于尚未创建块,因此块上失败了,我得到的最终文件的大小恰好是最后一个块的大小。

我相信我可以使用.onloadon事件逐个发送块xhr,这样我什至不必将它们从PHP temp移走,但是我想知道是否有不同的解决方案。

一些基本的代码可以取悦您:

function upload(file) {
  var BYTES_PER_CHUNK = parseInt(2097152, 10),
  size = file.size,
  NUM_CHUNKS = Math.max(Math.ceil(SIZE / BYTES_PER_CHUNK), 1),
  start = 0, end = BYTES_PER_CHUNK, num = 1;

  var chunkUpload = function(blob) {
    var fd = new FormData();
    var xhr = new XMLHttpRequest();

    fd.append('upload', blob, file.name);
    fd.append('num', num);
    fd.append('num_chunks', NUM_CHUNKS);
    xhr.open('POST', '/somedir/upload.php', true);
    xhr.send(fd);
  }

  while (start < size) {
    chunkUpload(file.slice(start, end));
    start = end;
    end = start + …
Run Code Online (Sandbox Code Playgroud)

javascript file-upload chunks

5
推荐指数
1
解决办法
3083
查看次数

在R中流处理大型csv文件

我需要对一个非常大的csv文件(c.8.5GB)进行几个相对简单的更改。我最初尝试使用各种读取器功能:read.csv,readr :: read.csv,data.table :: fread。但是:它们全部用尽了内存。

我在想我需要使用流处理方法。读取,更新,写入,重复。我找到了正确的答案。但是我不怎么终止循环(我是R的新手)。

所以我有两个问题:

  1. 使while循环起作用的正确方法是什么?
  2. 有没有更好的方法(用于“更好”的定义)?例如,有什么方法可以使用dplyr和管道吗?

当前代码如下:

src_fname <- "testdata/model_input.csv"
tgt_fname <- "testdata/model_output.csv"

#Changes needed in file: rebase identifiers, set another col to constant value
rebase_data <- function(data, offset) {
  data$'Unique Member ID' <- data$'Unique Member ID' - offset
  data$'Client Name' <- "TestClient2"
  return(data)
}

CHUNK_SIZE <- 1000
src_conn = file(src_fname, "r")
data <- read.csv(src_conn, nrows = CHUNK_SIZE, check.names=FALSE)
cols <- colnames(data)
offset <- data$'Unique Member ID'[1] - 1

data <- rebase_data(data, offset)
#1st time …
Run Code Online (Sandbox Code Playgroud)

csv r chunks

5
推荐指数
1
解决办法
1285
查看次数

在Swift 3中将数据拆分为块

我需要通过电线发送从照片库中读取的图像 - 大小为5MB.

我使用以下方法从库中读取图像:PHImageManager.requestImageData(for:options:resultHandler:)并获取一个Data对象.然后我想有效地将​​数据分成块(不复制内存).最好的方法是什么?

这是我到目前为止:

    imageData.withUnsafeBytes { (unsafePointer: UnsafePointer<UInt8>) -> Void in

        let totalSize = data.endIndex
        var offset = 0

        while offset < totalSize {
            let chunkSize = offset + uploadChunkSize > totalSize ? totalSize - offset : uploadChunkSize
            let chunk = Data(bytesNoCopy: unsafePointer, count: chunkSize, deallocator: Data.Deallocator.none)

            // send the chunk...

           offset += chunkSize
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是我在编译时遇到这个错误:

无法将'UnsafePointer'类型的值转换为预期的参数类型'UnsafeMutableRawPointer'

如果我使用mutableBytes:

data.withUnsafeMutableBytes { (unsafePointer: UnsafeMutablePointer<UInt8>) -> Void in... }
Run Code Online (Sandbox Code Playgroud)

然后我得到编译时错误:

不能在不可变值上使用变异成员:'data'是'let'常量

这是正确的,因为我真的不想对图像数据进行更改.我只想一次发送一大块.

有一个更好的方法吗?

upload chunks swift

5
推荐指数
1
解决办法
3567
查看次数

使用`readr :: read_csv_chunked()`读取块中的csv文件

我想阅读更大的csv文件,但遇到内存问题.因此,我想尝试read_csv_chunked()readr包中读取它们.我的问题是我真的不明白这个callback论点.

这是我迄今为止尝试过的最小例子(我知道我必须包含所需的操作f(),否则在内存使用方面不会有优先权,对吧?):

library(tidyverse)
data(diamonds)
write_csv(diamonds, "diamonds.csv") # to have a csv to read

f <- function(x) {x}
diamonds_chunked <- read_csv_chunked("diamonds.csv", 
                                     callback = DataFrameCallback$new(f),
                                     chunk_size = 10000)
Run Code Online (Sandbox Code Playgroud)

我试图让callback论证接近官方文档中的例子:

# Cars with 3 gears
f <- function(x, pos) subset(x, gear == 3)
read_csv_chunked(readr_example("mtcars.csv"), 
                 DataFrameCallback$new(f), 
                 chunk_size = 5)
Run Code Online (Sandbox Code Playgroud)

但是,我收到下面的错误,似乎在第一个块被读取后出现,因为我看到进度条移动到18%.

eval中的错误(替换(expr),envir,enclos):未使用的参数(索引)

我已经尝试将我想要的操作包含在其中f(),但我仍然遇到了同样的错误.

csv r chunks readr

5
推荐指数
2
解决办法
1742
查看次数

Angular 4.3 HttpClient分块上传

我必须处理大量文件上传(超过4GB)。目前,我正在使用新的HttpClient。是否可以在Angular 4.3的新HttpClient模块中为分块上载设置选项?我找到了带有ng-file-upload模块的Angularjs解决方案。不幸的是,它不适用于角度4。谢谢您的帮助。

file-upload chunks chunked-encoding angular angular4-httpclient

5
推荐指数
0
解决办法
492
查看次数

Webpack splitChunks插件 - 为什么设置块的优先级使其初始化异步?


我有一个问题,了解Webpack splitChunks插件的行为.我正在研究的是将现有站点上的旧脚本重写为组件并使用Webpack进行捆绑.捆绑只是JS,大多数是在身体的末端加载.但是一个小脚本需要位于页面的标题中,因为它还会在标题和正文中创建很少的全局方法,主要用作内联脚本.由于它用于GA跟踪,它不会改变,事件必须尽快发送.

下面的配置工作适合我,但问题是,为什么它的工作原理只是这样?

确切的问题是在下面的代码中的注释,但我也把它放在这里:我不明白为什么有必要也包括!isUsedInAppHeadercommon块的条件.如果没有!isUsedInAppHeader条件,则不会common.header创建块.然后,当我尝试通过为common.header块添加更高优先级来修复它时,它会导致脚本中的脚本异步初始化app.header.js.

异步行为是我根本不理解的,因为它从未发生过app.js.

实际上,我有另一个问题.是否可以导出一个同时立即初始化的公共块?或者你会提出另一个解决方案吗?标题中的脚本无法移动,也必须同步初始化,因为它的主要作用是为GA跟踪创建全局方法,这些方法必须立即用于以下代码中.

谢谢!

Webpack配置:

...
gulp.task('webpack', function(callback) {
    var settings = {
        ...
        entry: {
            'app.header':   './js/app.header.js',
            'app':          './js/app.js',
            ... // page specific files etc.
        },
        ...
        optimization: {
            splitChunks: {
                cacheGroups: {
                    // Node modules used in app.js
                    vendorsApp: {
                        test(module, chunks) {
                            let isInAppEntryPoint = chunks.map(chunk => chunk.name).includes('app');
                            let isNodeModule = /\/node_modules\//.test(upath.normalize(module.resource));
                            return isInAppEntryPoint && …
Run Code Online (Sandbox Code Playgroud)

chunks webpack splitchunksplugin webpack-splitchunks

5
推荐指数
1
解决办法
420
查看次数