Anduin Xue
Anduin Xue

Anduin's Tech Blog

All Posts in 2020.12


FFmpeg 用法概览

本篇博客概括了FFmpeg的用法,包括视频转码、硬件加速、直播推流、整合视频和音频、修改视频分辨率、调整视频速度、剪取视频的一段时间、用ffmpeg扣取一个视频区域、反转视频等。文章详细介绍了每个操作的命令和参数,并给出了示例。此外,博客还推荐了SRS项目和flv.js,用于搭建直播平台和在网页里加载FLV直播流。通过阅读本文,您将了解如何使用FFmpeg进行各种视频操作和直播推流,实现类似Bilibili直播的播放体验。那么,您准备好尝试这些功能了吗?或许您可以思考如何将这些技能应用到您的项目中,为观众带来更好的观看体验。--GPT 4

bash FFmpeg

C# run tasks in a threads pool with fixed size

在本文中,我们将探讨如何在C#中使用固定大小的线程池运行任务。首先,我们提供了一个`CannonQueue`类,该类使用`SafeQueue`来存储待处理的任务,并使用`RunTasksInQueue`方法来并行执行这些任务。为了能够动态地向任务池中添加任务,我们修改了`QueueNew`方法,使其在添加任务时重新启动引擎。同时,我们还提供了一个`QueueWithDependency`方法,以便在需要访问诸如数据库或HTTP之类的依赖项时保持依赖项处于活动状态。 最后,我们展示了如何注册`CannonQueue`作为单例依赖项,并如何在实际应用中使用该服务。例如,我们可以使用`QueueNew`方法将下载任务添加到队列中,并利用`RunTasksInQueue`方法并行执行这些任务。此外,我们还可以使用`QueueWithDependency`方法来处理具有依赖关系的任务,例如使用Entity Framework的任务。 那么,如何在实际应用场景中高效地利用这个线程池呢?本文提供的方法是否足够满足您的需求,还是需要进一步优化?在实际开发过程中,可能会遇到哪些挑战和问题?希望这篇文章能够启发您的思考,帮助您找到解决方案。--GPT 4

C# Async Task Multi-Threading

Display code coverage information for .NET Core project using Azure DevOps.

本文介绍了如何在.NET Core项目中使用Azure DevOps显示代码覆盖率信息。首先,需要在Azure DevOps中创建一个构建管道。对于使用经典设计器的用户,需要添加一个新的.NET Core命令行步骤,并确保发布测试结果。在参数输入中,插入:--configuration $(buildConfiguration) --collect "Code coverage"。对于使用YAML的用户,添加任务:DotNetCoreCLI@2,并使用相应的输入参数。 请注意,始终使用Windows平台运行构建,不要在Linux上运行,因为代码覆盖率生成器尚不支持Linux。保存并运行管道后,可以在构建完成时查看代码覆盖率和测试结果。在本文的示例中,代码覆盖率为87%。 要获取徽章URL,首先复制URL中的以下部分。复制URL的三个部分,如示例中的A、B和C。然后复制以下markdown文本:![Azure DevOps coverage](https://img.shields.io/azure-devops/coverage/{{A}}/{{B}}/{{C}})。将A、B和C更改为复制的值,如:![Azure DevOps coverage](https://img.shields.io/azure-devops/coverage/aiursoft/Star/5)。将其保存在readme.md中。 完成上述步骤后,即可在.NET Core项目中显示代码覆盖率信息。这样的功能对于开发者来说,无疑是一个很好的辅助工具,可以更好地了解代码的覆盖情况,提高代码质量。那么,如何更好地提高代码覆盖率呢?这将是一个值得思考的问题。--GPT 4

.NET Core Azure DevOps .NET Test MSTest Integration Test Code coverage GitHub

ASP.NET Core Integration Test using MSTest

在官方文档中,仅有一个使用xunit进行ASP.NET Core集成测试的示例。但如果你不喜欢xunit呢?我们能否用MSTest替换它?答案是可以的。 首先,卸载xunit并安装MSTest。清理项目结构,然后为测试项目安装MSTest。接下来,在测试项目中启动服务器。在测试项目下创建一个名为`BasicTests.cs`的新类。将以下代码放入基本测试中,当测试开始时,它将自动启动一个新的ASP.NET Core Web服务器,并使用来自主Web项目的Startup。 接下来,添加一个简单的测试。在测试类中插入一个新功能。在这个新测试中,你将请求测试服务器并检查结果。现在你可以运行测试了!在Visual Studio中,或者在解决方案文件夹下执行`dotnet test`。 最后,考虑测试清理。在测试之后,你应该停止服务器以防止影响其他测试。只需停止并释放服务器即可完成工作。 本文讨论了如何使用MSTest替换xunit进行ASP.NET Core集成测试,并提供了详细的步骤。那么,使用MSTest进行集成测试是否能带来更好的测试效果?在实际应用中,MSTest和xunit之间的性能差异如何?这些问题留给读者自己探索和找到答案。--GPT 4

ASP.NET Core C# .NET Core Test MSTest Functional Test Integration Test