小编Mr.*_*oor的帖子

ffmpeg时间单位解释和av_seek_frame方法

time_base在ffmpeg 中意味着什么?文件(这里)说它是"每秒帧数".我在一个真实的例子中看到:

AVFormatContext->streams[video_index]->time_base== 1/30000

但是视频的AVCodecContext->time_base== 1001/60000

这让我很困惑,我不明白.

第二个问题是关于av_seek_frame方法.如果通过时间戳(最后一个参数是AVSEEK_FLAG_BACKWARD或0)进行搜索,则从av_seek_frame读取的当前位置开始搜索?还是从文件的开头?或者从最后一次av_seek_frame调用后的解码起始位置?

ffmpeg video-processing

6
推荐指数
1
解决办法
8148
查看次数

最好的erlang内存缓存系统跨网络节点= mnesia?

大家早上好

我是erlang的新手,但我正在努力设计我在erlang上的第一个项目尽我所能.这里我需要一些关于erlang内存缓存系统的建议.

  1. 缓存项是基于键值的存储.key通常是ASCII字符串; 值是erlang的类型包括number/list/tuple/etc.
  2. 缓存项可以由任何节点设置.
  3. 缓存项可以由任何节点获取.
  4. 即使在不同的服务器上,也可以跨所有节点共享缓存项
  5. 允许脏读,我不希望任何锁或事务降低性能.
  6. 完全分布式,没有集中式机器或服务.
  7. 很好的表现
  8. 易于安装和部署以及配置和维护

在我看来,第一选择是mnesia,但我没有任何经验.它符合我的要求吗?我的表现如何?

另一个选项是memcached - 但我担心性能低于mnesia,因为执行了额外的序列化/反序列化,因为memcached守护进程来自另一个OS进程.

任何建议都有帮助:)

erlang ets

6
推荐指数
1
解决办法
3456
查看次数

HttpClient将HTTP GET请求流水线化到ServiceStack API

首先,我有ServiceStack作为我的服务器,它提供RESTful HTTP API.

这是一个例子.

public void GET(XXXXXRequest request)
{
    System.Threading.Thread.Sleep(2000);
}
Run Code Online (Sandbox Code Playgroud)

然后我System.Net.Http.HttpClient用来访问它.正如这里所说的, HttpClient对于大多数方法来说,通过相同的TCP连接发送HTTP GET请求是线程安全的.

所以我有一个HttpClient的单例实例,如下所示

HttpClient _httpClient = new HttpClient(new WebRequestHandler()
{
    AllowPipelining = true
});
Run Code Online (Sandbox Code Playgroud)

然后我使用以下测试代码在上一次响应之后发送请求

await _httpClient.SendAsync(request1, HttpCompletionOption.ResponseContentRead);
await _httpClient.SendAsync(request2, HttpCompletionOption.ResponseContentRead);
await _httpClient.SendAsync(request3, HttpCompletionOption.ResponseContentRead);
Run Code Online (Sandbox Code Playgroud)

智能嗅探器中,我确实看到请求是通过一个连接发送的,它类似于:

Client -> Request1
Client <- Response1
Client -> Request2
Client <- Response2
Client -> Request3
Client <- Response3
Run Code Online (Sandbox Code Playgroud)

现在我将代码更改为fire-and-forget模式,如下所示.

_httpClient.SendAsync(request1, HttpCompletionOption.ResponseContentRead);
_httpClient.SendAsync(request2, HttpCompletionOption.ResponseContentRead);
_httpClient.SendAsync(request3, HttpCompletionOption.ResponseContentRead);
Run Code Online (Sandbox Code Playgroud)

这样就可以在不等待之前的响应的情况下发送请求,我希望请求和响应如下所示

Client -> Request1
Client -> Request2
Client -> …
Run Code Online (Sandbox Code Playgroud)

http.sys servicestack dotnet-httpclient http-pipelining

6
推荐指数
1
解决办法
1089
查看次数

访问kubernetes pod容器中的内置etcd

我不想设置另一个etcd集群.

如何从kubernetes pod访问内置的etcd?

我想首先我需要创建一个服务帐户并使用此帐户启动pod.

那么这个pod中的容器怎么能发现内置的etc的URI呢?

谢谢

kubernetes

6
推荐指数
1
解决办法
1861
查看次数

Erlang接收消息 - 它是如何在内部完成的?

如何在erlang运行时内部实现接收消息?

当进程正在等待消息时,执行将在接收上挂起.接收是通过阻塞IO还是异步IO完成的?

如果是前者,则表示OS线程被阻塞,如果接收时有多个进程挂起,则由于线程上下文切换导致性能不佳,也可能达到操作系统的线程限制.

erlang

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

MongoDB C# 驱动程序——创建索引

我正在使用MongoDB C# 驱动程序来创建索引

当我的应用程序启动时,它会创建如下索引

await collection.Indexes.CreateOneAsync(new BsonDocument("code", 1), new CreateIndexOptions() { Unique = true, Sparse = true });
Run Code Online (Sandbox Code Playgroud)

我的问题是:如果索引已经存在,则不会再次重新创建/索引索引,对吗?

.net c# mongodb-csharp-2.0 mongodb-.net-driver

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

System.Net.WebSockets.ClientWebSocket 的线程安全性

文档对于类的线程安全性并不清楚System.Net.WebSockets.ClientWebSocket

\n\n

SendAsync同时从多个线程调用该方法是否安全\xef\xbc\x9f

\n

.net clientwebsocket

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

VS2017的MSBuild无法编译.NET Standard 2.0项目

我有一个针对.NET framework 4.6.1和.NET Standard 2.0的csproj.

它可以使用Visual Studio 2017在我的本地机器上编译(v15.3.2)

现在我正在设置我们的构建服务器(Jenkins)来包含这个项目.我们的构建服务器适用于其他.NET Framework 4.6.1项目.

首先,我将工具链从本地机器(C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\)复制到构建服务器.

然后我将Jenkins配置为使用从中复制的MSBuild v15.3.409.57025 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe

但它会导致编译时出现以下错误

C:\ Program Files(x86)\ MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.TargetFrameworkInference.targets(126,5):错误:当前的.NET SDK不支持以.NET Standard 2.0为目标.要么是.NET Standard 1.6或更低版本,要么使用支持.NET Standard 2.0的.NET SDK版本.

该文件Microsoft.NET.TargetFrameworkInference.targets也是从我的本地计算机复制的C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.TargetFrameworkInference.targets.我在我的本地机器上检查了它的内容并在下面看了一行.

<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

ToolsVersion仍然14.0在我的VS2017目录?

有谁知道如何解决它?

谢谢

msbuild .net-standard .net-standard-2.0

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

在 .NET Core 2.1.0-rc1-final 中使用 System.Net.Http.SocketsHttpHandler

.NET 2.1的核心配备了极大的改善System.Net.HttpClient

对于 HttpClient,我们从头开始构建了一个新的托管 HttpClientHandler,称为SocketHttpHandler。正如您可能猜到的,它是基于 .NET 套接字和 Span 的 HttpClient 的 C# 实现。

我的应用程序是作为 Windows 服务托管的 ASP.NET Core 应用程序,根据 Microsoft这个文档,该项目是基于 .NET Core 但它TargetFramework是 .NET 框架。

该应用程序适用于面向 .NET 框架 4.7.1 的 .NET Core 2.0。

最近微软发布了 Microsoft.AspNetCore 2.1.0-rc1-final ,它可以用于生产。所以我尝试升级到这个版本。

所以我升级TargetFramework到 4.7.2 并升级参考如下。

<PackageReference Include="Microsoft.AspNetCore" Version="2.1.0-rc1-final" /> <PackageReference Include="Microsoft.AspNetCore.Hosting.WindowsServices" Version="2.1.0-rc1-final" /> <PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="2.1.0-rc1-final" /> <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.1.0-rc1-final" /> <PackageReference Include="Microsoft.AspNetCore.Http" Version="2.1.0-rc1-final" /> <PackageReference Include="Microsoft.AspNetCore.WebSockets" Version="2.1.0-rc1-final" />

然后它停止工作并且编译器引发错误,例如找不到类型或命名空间名称“HttpClient”

我知道NuGet …

system.net dotnet-httpclient .net-core asp.net-core asp.net-core-2.0

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

运行时标识符和 SelfContained

我已经设置了RuntimeIdentifiersSelfContained如下

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RuntimeIdentifiers>win-x64;linux-x64</RuntimeIdentifiers>
    <SelfContained>true</SelfContained>
    <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

它失败了

不支持在不指定 RuntimeIdentifier 的情况下构建或发布独立的应用程序。请指定 RuntimeIdentifier 或将 SelfContained 设置为 false。瑞银服务

C:\Program Files\dotnet\sdk\3.1.302\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets 133

但根据医生的说法。property<RuntimeIdentifiers>元素允许您为项目指定以分号分隔的运行时标识符 (RID) 列表。RID 支持发布独立部署。

我错过了什么吗?或者文档有误?

更新:为了解决这个问题,我正在使用RuntimeIdentifier和 ,SelfContained如下所示。

<PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RuntimeIdentifier Condition=" '$(OS)' == 'Windows_NT' ">win-x64</RuntimeIdentifier>
    <RuntimeIdentifier Condition=" '$(OS)' == 'Unix' ">linux-x64</RuntimeIdentifier>
    <SelfContained>true</SelfContained>
    <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

.net-core

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