netcore linux ffmpeg 首帧图

第一步  On CentOS/RHEL 6.*:
  $ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
On CentOS/RHEL 7:
  $ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
  $ yum repolist
第二步:yum install ffmpeg
安装后,查看版本,来进行是否安装成功判断;(用whereis ffmpeg可以查看其安装路径;)

/usr/bin/ffmpeg -version
 /// <summary>
        /// 获取视频首帧图
        /// </summary>
        /// <param name="vediofilepath"></param>
        /// <param name="directImagedirectory"></param>
        /// <param name="ffmpegpath"></param>
        /// <returns></returns>
        public static string GetVedioFirstImage(string vediofilepath, string directImagedirectory, string ffmpegpath)
        {
            if (string.IsNullOrEmpty(vediofilepath))
            {
                return string.Empty;
            }
            string str_CommandArgs = "";
            var file1 = new FileInfo(vediofilepath);
            if (file1.Exists)
            {
                try
                {
                    //string save_folder = file1.FullName.Replace(file1.Name, "");
                    //string image_file = "video_" + file1.Name.Replace(file1.Extension, ".jpg");
                    var basepath = directImagedirectory + DateTime.Now.ToString("yyyyMMdd") + "/";
                    if (!Directory.Exists(directImagedirectory))
                    {
                        Directory.CreateDirectory(directImagedirectory);
                    }
                    if (!Directory.Exists(basepath))
                    {
                        Directory.CreateDirectory(basepath);
                    }
                    //string image_file = "video_" + file1.Name.Replace(file1.Extension, ".jpg");
                    string image_file = basepath + Guid.NewGuid().ToString("N") + ".jpg";
                    //#设置参数以直接输出图像序列(帧),第2秒
                    //str_CommandArgs = "-i " + vediofilepath + " -ss 00:00:02 -vframes 1 -an -y  -f mjpeg " + image_file;
                    str_CommandArgs = "-i " + vediofilepath + "  -y -f   image2  -ss 1 -vframes 1   " + image_file;
                    System.Diagnostics.ProcessStartInfo cmd_StartInfo = new System.Diagnostics.ProcessStartInfo(ffmpegpath, str_CommandArgs);
                    cmd_StartInfo.RedirectStandardError = false; //set false
                    cmd_StartInfo.RedirectStandardOutput = false; //set false
                    cmd_StartInfo.UseShellExecute = false; //set true
                    cmd_StartInfo.CreateNoWindow = true;  //don‘t need the black window
                                                          //创建一个进程,分配它的ProcessStartInfo并启动它
                    System.Diagnostics.Process cmd = new System.Diagnostics.Process();
                    cmd.StartInfo = cmd_StartInfo;
                    cmd.Start();
                    cmd.WaitForExit();
                    //System.Threading.Thread.Sleep(1000);

                    return image_file;
                }
                catch (Exception ee)
                {
                    throw new Exception(ee.StackTrace + ee.Message + " for: " + vediofilepath + " " + str_CommandArgs);
                }
            }
            else
            {
                return string.Empty;

            }
        }

原文地址:https://www.cnblogs.com/chenyishi/p/12302053.html

时间: 2024-10-06 10:27:01

netcore linux ffmpeg 首帧图的相关文章

Java截取视频首帧并旋转正向

package test; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.

linux FFMPEG 摄像头采集数据推流

Linux下用 FFMPEG 采集 usb摄像头视频 和 摄像头内置麦克风音频 到RTMP服务 ffmpeg -f video4linux2 -qscale 10 -r 12 -s 640x480 -i /dev/video0 -f alsa -i hw:1 -ab 16 -ar 22050 -ac 1 -f mp3 -f flv rtmp://127.0.0.1/rtmpsvr/rtmp1 ./ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -

linux + ffmpeg + eclipse 调试

使用linux + ffmpeg + eclipse调试步骤OS : ubuntu 12.04Eclipse : 3.7.2 为Eclipse安装cdt插件,使其支持c/c++ 导入ffmpeg项目 File --> Import --> c / c++ --> Existing Code as Makefile Project 输入 Project Name, 选择ffmpeg所在目录, Toolchain选择Linux GCC 项目右键 --> Debug As -->

视频直播首帧速度优化

直播在2016年是一个非常火热的领域,我也有幸在今年参与了新浪微博直播客户端的开发,在此分享一下关于直播开发的一些经验. 1.视频直播的基本原理 视频直播的过程大概由这么几个部分构成: 推流端 源服务器 CDN边缘节点 播放端 直播架构.jpg 整个直播流转的过程是:推流端将视频流推向源服务器,源服务器对视频流进行编码或者转存,CDN负责负载均衡与缓存,CDN节点从源服务器获取视频流,播放端再从CDN上把视频流拉下来. 2.不同的直播协议 HLSHLS全称是Http live stream,是苹

Linux ffmpeg命令的介绍与使用

ffmpeg使用语法 ffmpeg [[options][`-i' input_file]]... {[options] output_file}... 如果没有输入文件,那么视音频捕捉(只在Linux下有效,因为Linux下把音视频设备当作文件句柄来处理)就会起作用.作为通用的规则,选项一 般用于下一个特定的文件.如果你给 –b 64选项,改选会设置下一个视频速率.对于原始输入文件,格式选项可能是需要的.缺省情况下,ffmpeg试图尽可能的无损转换,采用与输入同样的音频视 频参数来输出. ff

全球最受欢迎的十大Linux发行版(图)

帮助新的Linux用户在越来越多的Linux发行版中选择最合适的操作系统,是创建这个网页的原因.它列出了迄今为止最流行的10个Linux发行版(另外增加的是FreeBSD,到目前为止最为流行的BSD系统),通常被视为世界各地的Linux用户最广泛推荐的. 没有数字能够完全统计还有许多 其他的发行版可能更好适合您的特定目的,但作为一般规则,所有这些发行版都很受欢迎,有非常活跃的论坛或邮件列表,你可以问任何问题.Ubuntu, Linux Mint 和PCLinuxOS 被认为是不必掌握其复杂性的L

Git个大平台(win/Linux/Mac)图形化界面客户端大汇总

摘要: 介绍各平台下的图形化界面git客户端(本人并没有全部使用过),欢迎大家补充新的软件或者使用感受~ 一.TortoiseGit - The coolest Interface to Git Version Control TortoiseGit 是 TortoiseSVN 的 Git 版本,TortoiseGit 用于迁移 TortoiseSVN 到 TortoiseGit,一直以来 Git 在 Windows 平台没有好用 GUI 客户端,现在 TortoiseGit 的出现给 Wind

Linux下栈帧分析

我们知道C语言中,每个栈帧对应着一个未运行完的函数.栈帧中保存了该函数的返回地址和局部变量.栈帧也叫过程活动记录,是编译器用来实现函数调用的一种数据结构.那么在Linux下gcc编译器栈帧是怎么实现的呢? 首先来看下面这段代码: 这段代码的运行结果是会导致虚拟机重启.通过代码可以看到我们在fun函数中写了让系统重启的代码然而我们在main函数中并没有调用fun函数,却仍旧导致了系统重启. 首先要我们知道栈是从高地址向低地址生长的,每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需

Linux 密码找回,图形化界面和命令行切换和常见命令,安装(jdk)

今天翻出了以前搭建的一个hadoop简单的伪分布式集群,三个在虚拟机上的centos系统,但是密码忘记了.本想再装一套oraclelinux,由于时间关系,还是决定查一查找回centos密码的方法.做个记录,方便查阅. 1.所有密码都忘记了 开机时长按esc,进入一个界面,选第二项按e,输入空格+1,再选第二项按b,进入root界面. passwd  root  重置root密码 passwd  centos 重置centos用户密码 vi   /etc/inittab   3,5图形化和命令行