因为要发布文章,所以想到录一段视频。但找了好些时间,专业一些的都要注册。免费版本有时间限制,而且还有水印,所以想用其他办法,网上找了下,找到一个折衷的办法:

首先,你的系统得是WIN10,然后按WIN+G快捷键,就会出来游戏录制界面,按中间的圆点就可以开始录制了,注意桌面不支持。录完后按停止键。录好的视频保存在“\视频\捕获”文件夹下。

录好的视频是mp4格式,我们还需要将其转为gif格式,才能嵌到我们的文章里。这里要用到一个类(引用自C#使用FFmpeg 将视频格式转换成Gif图片示例 - 天马3798 - 博客园),网上已经写好了,我们拿来用一下(其实就是将DOS命令写到文件里面封装了一下,mysql数据库服务器也可以用这种方法来做)。下面是用C#写的代码,使用之前先下载ffmpeg,然后设置好ffmpeg路径和源的路径,以及保存gif的路径,分辨率看自己的电脑改下:

using System;
using System.Diagnostics;

namespace togif
{
    class Program
    {
        public static void Main(string[] args)
        {
            // TODO: Implement Functionality Here
            GifDemo gif=new GifDemo();
            gif.ConvertVideoToGif ();
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
    class GifDemo
    {
        //文件名不支持空格
        public static string ffmpegtool = @"C:\Users\Administrator\Documents\SharpDevelop_Projects\MP4toGIF\togif\bin\Debug\ffmpeg.exe";
        public static string imgFile = @"C:\Users\Administrator\Documents\SharpDevelop_Projects\MP4toGIF\togif\bin\Debug\mygif.gif";
        public static string sourceFile = @"C:\Users\Administrator\Documents\SharpDevelop_Projects\MP4toGIF\togif\bin\Debug\test.mp4";
        public void ConvertVideoToGif()
        {
            Process p = new Process();//建立外部调用进程
            //要调用外部程序的绝对路径
            p.StartInfo.FileName = ffmpegtool;
            //转化gif动画
            string strArg = "-i " + sourceFile + " -y -s 800x450 -f gif " + imgFile;
            //string strArg = "  -i " + sourceFile + " -y  -f gif -vframes 50 " + imgFile;
            // string strArg = "  -i " + sourceFile + " -y  -f gif -ss 0:20  -dframes 10 -frames 50 " + imgFile;
    
            p.StartInfo.Arguments = strArg;
    
            p.StartInfo.UseShellExecute = false;//不使用操作系统外壳程序启动线程(一定为FALSE,详细的请看MSDN)
            p.StartInfo.RedirectStandardError = true;//把外部程序错误输出写到StandardError流中(这个一定要注意,FFMPEG的所有输出信息,都为错误输出流,用StandardOutput是捕获不到任何消息的...)
            p.StartInfo.CreateNoWindow = false;//不创建进程窗口
            p.ErrorDataReceived += new DataReceivedEventHandler(Output);//外部程序(这里是FFMPEG)输出流时候产生的事件,这里是把流的处理过程转移到下面的方法中,详细请查阅MSDN
            p.Start();//启动线程
            p.BeginErrorReadLine();//开始异步读取
            p.WaitForExit();//阻塞等待进程结束
            p.Close();//关闭进程
            p.Dispose();//释放资源
        }
        private void Output(object sendProcess, DataReceivedEventArgs output)
        {
            if (!String.IsNullOrEmpty(output.Data))
            {
                //处理方法...
                Console.WriteLine(output.Data);
            }
        }
    }
}

生成exe文件后会自动转换,等文件执行完,gif文件就转好了。

添加图片就可以看到动画了。

录屏并转为GIF,方便在文章中加动画相关推荐

  1. c语言录屏软件wps,如何打开WPS软件中的录屏功能

    如何打开WPS软件中的录屏功能 今天给大家介绍一下如何打开WPS软件中的录屏功能的具体操作步骤. 1. 打开电脑,进入桌面,找到WPS2019软件,双击打开. 2. 点击页面上的新建. 3. 选择新建 ...

  2. android禁止录屏功能,react-native(安卓)项目中禁止截屏与录屏

    一.整个项目中禁止截屏与录屏 在android/app/src/main/java/com/your-app-name/MainActivity.java文件中的onCreate方法中添加如下代码即可 ...

  3. Android性能优化:定性和定位Android图形性能问题——以后台录屏进程为例

    原文链接:https://juejin.cn/post/7096288511053004830 作者github:https://github.com/NasdaqGodzilla 简介 发现.定性与 ...

  4. mac os 录屏快捷键_Mac录屏软件集合,自带不够专业来凑

    最近打算录制一些软件教程进行视频分享,所以找了很多如何在MAC上录制屏幕的相关文章.没想到MAC系统有自带的屏幕录像功能,而且非常简单好用!除此之外,还有几款比较专业的第三方录屏软件,在这里都一并分享 ...

  5. 抛砖引玉系列:Android简易实现录屏软件。

    以前在工作中碰到一个问题,领导总是要求我给他路一段实现的功能效果或者当问题出现时,客户没办法描述清楚但是又找不到好用的免费录屏软件,所以昨天刚好有时间整理了一下,写了一个简易的Android录屏软件出 ...

  6. 免费录屏软件Captura下载安装及分享

    Captura是一个免费开源的录制屏幕软件,功能强大且十分简洁方便使用. 功能 截屏 捕获屏幕广播(Avi / Gif / Mp4) 使用/不使用鼠标光标捕获 捕获特定区域,屏幕或Windows 捕获 ...

  7. win10怎么录屏?windows自带录屏功能怎么用

    ​相信很多小伙伴家里的电脑都是win10系统的,想要录制电脑上的画面,那么就需要用到了windows自带的录屏功能.win10怎么录屏?windows自带的录屏功能怎么用?别担心,今天小编就来教教大家 ...

  8. 盘点经典免费录屏软件,短视频创作必备

    做解说.口播视频类的同学,录屏软件的必不可少的,文章结尾可获取安装包 1. EV录屏 是一款简单易用的屏幕录制工具,免费无水印.无限制,想录就录.内存占用率低,cpu消耗小,急速稳定运行,支撑顶级画质 ...

  9. 微信视频怎么录屏?2个方法教您轻松录制!

    案例:怎么录制微信视频通话? [我在和家人或者朋友打微信视频电话时,总是会发生一些有趣的事情,我想把这些美好的画面通过录屏记录下来.但我不知道如何录制微信视频通话?有没有大佬支个招!] 微信视频通话是 ...

最新文章

  1. 19倍超音速“大炮”轰出可控核聚变!成本仅为传统方法0.1%,腾讯已投资
  2. 用Delphi进行word开发
  3. 使用GlassFish 4.0测试驱动Java API以处理JSON
  4. linux网络编程(二)TCP通讯状态
  5. 60页论文综述深度学习优化方法,出自UIUC
  6. js 程序执行与顺序实现详解
  7. redistemplate 设置永不过期_解决密码已过期,拒绝访问问题
  8. (转)贝莱德,从0到6万亿
  9. 常用iOS的第三方框架
  10. Ballot evaluation
  11. char ch= 中 什么意思java_问一下java里的char到底是什么
  12. 一颗芯片是怎样诞生的
  13. uni-app - 监听用户滚动屏幕开始与结束(解决方案)
  14. 解题记录 LeetCode 下一个更大元素 单调栈
  15. 简述什么是图灵机_图灵机的工作原理是什么
  16. 五镜头倾斜摄影相机和大疆M200完美配合,让公园规划和验收更便捷
  17. mysql开发语言,纯干货
  18. 高德地图聚合android,GitHub - lingyanluoxue/android-togetherMap: 实现高德地图的marker聚合功能...
  19. java map增加值_Java程序以创建HashMap并添加键值对
  20. Ubuntu有趣命令

热门文章

  1. Post与Put的区别
  2. 天涯上令人抓狂的100个神经签名(天涯疯人院语录)
  3. matlab火炮射击问题_15个快速射击前端面试问题
  4. 为什么要选择炫云云渲染?它有哪些优势?
  5. 第三章 事件 windows程序设计 王艳平版
  6. 图像处理:比特平面分层
  7. 计算机网络安全本科大学排名,2021网络工程专业大学排名 最好大学排行榜
  8. 618观察,拼购成新势力,一线城市和下沉市场并重成趋势
  9. 〖大前端 - 基础入门三大核心之CSS篇⑯〗- 相对定位、绝对定位 与 固定定位
  10. 哈工大 信息安全概论 万字复习笔记