起因

C#使用FFmpeg获取电脑音视频可以用设备,当返回内容包含中文时,出现乱码问题

解决方案

ffmpeg本身的输出都是使用的错误输出,所以设置的是StandardErrorEncoding,如果你用的不是ffmpeg,而且使用东西,也遇到了乱码问题,那么你应该去修改相应输出流的编码。

public Process process = new Process();
//省略
this.process.StartInfo.StandardErrorEncoding = Encoding.UTF8;
//中间省略
this.process.StartInfo.RedirectStandardError = true;
//省略

上面的是我用的,那么你可能不是new Process()

比如你是var startInfo = new ProcessStartInfo()

那么就应该是startInfo.StandardErrorEncoding = Encoding.UTF8;

【C#】【ffmpeg】外部调用线程执行ffmepg读取返回的信息乱码问题的更多相关文章

  1. C#线程池ThreadPool.QueueUserWorkItem接收线程执行的方法返回值

    最近在项目中需要用到多线程,考虑了一番,选择了ThreadPool,我的需求是要拿到线程执行方法的返回值, 但是ThreadPool.QueueUserWorkItem的回调方法默认是没有返回值的,搜 ...

  2. java并发编程学习:如何等待多个线程执行完成后再继续后续处理(synchronized、join、FutureTask、CyclicBarrier)

    多线程应用中,经常会遇到这种场景:后面的处理,依赖前面的N个线程的处理结果,必须等前面的线程执行完毕后,后面的代码才允许执行. 在我不知道CyclicBarrier之前,最容易想到的就是放置一个公用的 ...

  3. 卸载AppDomain动态调用DLL异步线程执行失败

    应用场景 动态调用DLL中的类,执行类的方法实现业务插件功能 使用Assembly 来实现 但是会出现逻辑线程数异常的问题 使用AppDomain 实现动态调用,并卸载. 发现问题某个插件中开启异步线 ...

  4. Engine中执行gp工具返回的要素图层如何获取?

    来自:http://zhihu.esrichina.com.cn/?/question/12087 Engine中执行gp工具返回的[解决办法]:需要用gpUtils.DecodeFeatureLay ...

  5. java并发:获取线程执行结果(Callable、Future、FutureTask)

    初识Callable and Future 在编码时,我们可以通过继承Thread或是实现Runnable接口来创建线程,但是这两种方式都存在一个缺陷:在执行完任务之后无法获取执行结果.如果需要获取执 ...

  6. c#等待所有子线程执行完毕方法

    当我们在使用线程中,你会发现主线结束后子线程的结果才显示出来.现在我要等待所以子线程结束,然后在显示结果,怎么做呢? 方法如下: 1.使用 ManualResetEvent,代码如下:  using  ...

  7. Java如何等待子线程执行结束

    工作中往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完后再把那段逻辑的处理结果进行汇总的产景, 这时候就需要使用线程了. 一个线程启动之后, 是异步的去执行需要执行的内容的, 不会影响主线 ...

  8. Java线程池主线程等待子线程执行完成

    今天讨论一个入门级的话题, 不然没东西更新对不起空间和域名~~ 工作总往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完后再把那段逻辑的处理结果进行汇总的产景, 这时候就需要使用线程了. 一 ...

  9. 最简单的基于FFmpeg的AVDevice例子(读取摄像头)

    =====================================================最简单的基于FFmpeg的AVDevice例子文章列表: 最简单的基于FFmpeg的AVDev ...

  10. Java自定义线程池-记录每个线程执行耗时

    ThreadPoolExecutor是可扩展的,其提供了几个可在子类化中改写的方法,如下: protected void beforeExecute(Thread t, Runnable r) { } ...

随机推荐

  1. form data 与request payload的区别以及php接收这些数据的方法

    form data 与request payload的区别以及php接收这些数据的方法 以前与前端交互一直都是POST.GET的,PHP端就直接$_POST,$_GET来接收,从来没有出现过以外. 最 ...

  2. dotnet 委托delegate的使用 定义和使用

    void Main() { // 委托 - 初级和高级的分水岭 // 1. 委托的初体验 // 委托是一个引用类型,其实是一个类型,保存方法的指针(地址) (变量名字都是地址 都是指针) // 是一个 ...

  3. nestjs 和 .net DI 使用并注册的区别

    核心:对象之间的关系 各种 引用  --- 方便使用各种服务 1. .net 注册服务 三种注册方式 build.Service.Addsigtel 单例 瞬时 等 .addSingtel<IU ...

  4. 云原生周刊 | 让 ChatGPT 以电子邮件的方式来解释 KubeSphere

    过去的一周是 ChatGPT 的狂欢,我猜每一位云原生玩家都很好奇他是如何看待 Kubernetes 的.咱们不防换个方式来提问,让它使用电子邮件的方式来向别人推荐 KubeSphere 和 Open ...

  5. 一次彻底讲清如何处理mysql 的死锁问题

    MySQL 死锁 是指两个或多个事务互相等待对方持有的锁,从而导致所有事务都无法继续执行的现象.在 InnoDB 存储引擎中,死锁是通过锁机制产生的,特别是在并发较高.业务逻辑复杂的情况下,更容易发生 ...

  6. 使用LayUI实现文件上传的一个误区

    1.HTML 2.JS 3.后端处理(注意:参数 file) 这里传入的参数名只能是 file LayUI文件上传官方文档: https://www.layui.com/doc/modules/upl ...

  7. Junit5

    JUnit5 安卓build.gradle https://github.com/mannodermaus/android-junit5 Unit 3 或 JUnit4 的向后兼容性 JUnit4 已 ...

  8. Centos7安装Mysql5.7.42

    安装前的清理 查看是否安装了Mysql版本 [root@localhost ~]# yum list installed mysql* [root@localhost ~]# rpm –qa|grep ...

  9. 题解:【XR-3】核心城市

    题解:[XR-3]核心城市 思路一:考虑由特例推广到一般 1.很容易想到先考虑一个关键点的情况,然后再推广到一般情况. 2.一个点肯定选距离上最平衡的那个点,即树的中心.接着在中心周围贪心的选剩下的( ...

  10. HttpWebRequest调用API

    public void HttpWebRequestPost(){ string responseContent = string.Empty; var userNameAndPwd = new { ...