背景:我有视频剪辑和音轨,我想与所述视频同步.
从视频剪辑中,我将提取参考音轨.我还有另一首曲目,我想与参考曲目同步.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) 我在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) 在哪里可以阅读信息并查看将块加载到html5视频中的示例?
场景:
1.用户开始播放大型视频。
2.应下载10-20秒的视频。
3.如果用户观看的是前10秒,则应下载下10秒。因此,如果用户仅观看视频的前9秒,则不会有负载。
如果我们使用这种情况,它将减少服务器负载(在某些情况下)。
例如:
尝试在YouTube上观看视频。他们是这样工作的。尝试加载一半的视频(约3分钟),然后从头开始观看。视频的其他部分直到您到达特定点(在我的情况下,在下载点之前约50秒)才会下载。
我在html5视频中找不到任何缓冲控件。我也找不到在流行的基于html5的视频播放器(如VideoJs,JPlayer)中缓冲的任何控件。
有人知道怎么做吗?
我使用的是20GB(压缩)的.csv文件,我使用带有10 000 chuncksize参数的pandas pd.read_csv()从中加载了几列.
但是,这个参数是完全随意的,我想知道一个简单的公式是否可以给我更好的chunksize,这将加速数据的加载.
有任何想法吗?
出于教育目的,我想创建文件块上传。你们怎么知道什么时候全部块都上传了?
我尝试从中移出块temp
并重命名它们,以便它们以正确的顺序排列,然后与最后一块合并在一起。但是,我想发送的最后一块不是收到的最后一块。因此fopen()
,由于尚未创建块,因此块上失败了,我得到的最终文件的大小恰好是最后一个块的大小。
我相信我可以使用.onload
on事件逐个发送块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) 我需要对一个非常大的csv文件(c.8.5GB)进行几个相对简单的更改。我最初尝试使用各种读取器功能:read.csv,readr :: read.csv,data.table :: fread。但是:它们全部用尽了内存。
我在想我需要使用流处理方法。读取,更新,写入,重复。我找到了正确的答案。但是我不怎么终止循环(我是R的新手)。
所以我有两个问题:
当前代码如下:
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) 我需要通过电线发送从照片库中读取的图像 - 大小为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'常量
这是正确的,因为我真的不想对图像数据进行更改.我只想一次发送一大块.
有一个更好的方法吗?
我想阅读更大的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()
,但我仍然遇到了同样的错误.
我必须处理大量文件上传(超过4GB)。目前,我正在使用新的HttpClient。是否可以在Angular 4.3的新HttpClient模块中为分块上载设置选项?我找到了带有ng-file-upload模块的Angularjs解决方案。不幸的是,它不适用于角度4。谢谢您的帮助。
file-upload chunks chunked-encoding angular angular4-httpclient
我有一个问题,了解Webpack splitChunks插件的行为.我正在研究的是将现有站点上的旧脚本重写为组件并使用Webpack进行捆绑.捆绑只是JS,大多数是在身体的末端加载.但是一个小脚本需要位于页面的标题中,因为它还会在标题和正文中创建很少的全局方法,主要用作内联脚本.由于它用于GA跟踪,它不会改变,事件必须尽快发送.
下面的配置工作适合我,但问题是,为什么它的工作原理只是这样?
确切的问题是在下面的代码中的注释,但我也把它放在这里:我不明白为什么有必要也包括!isUsedInAppHeader
在common
块的条件.如果没有!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 ×10
r ×3
csv ×2
file-upload ×2
javascript ×2
algorithm ×1
angular ×1
connector ×1
html5-video ×1
io ×1
large-files ×1
memory ×1
pandas ×1
python ×1
readr ×1
swift ×1
upload ×1
video ×1
webpack ×1