ffmpeg如何实现视频截图

之前做了个项目,涉及到上传视频,那么我们知道,一般在界面显示的时候,是需要对视频有个预览的效果,就是显示某一帧视频的画面。

找了下发现ffmpeg可以实现这个功能。

FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了libavcodec——这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。

主要参数

-i——设置输入档名。

-f——设置输出格式。

-y——若输出文件已存在时则覆盖文件。

-fs——超过指定的文件大小时则结束转换。

-t——指定输出文件的持续时间,以秒为单位。

-ss——从指定时间开始转换,以秒为单位。

-t从-ss时间开始转换(如-ss 00:00:01.00 -t 00:00:10.00即从00:00:01.00开始到00:00:11.00)。

-title——设置标题。

-timestamp——设置时间戳。

-vsync——增减Frame使影音同步。

-c——指定输出文件的编码。

-metadata——更改输出文件的元数据。

-help——查看帮助信息。

ffmpeg的官网地址是:https://www.ffmpeg.org/

ffmpeg的Github项目地址是:https://github.com/FFmpeg/FFmpeg

下面我们来看下ffmpeg如何实现视频截图的操作:

1、下载 ffmpeg http://ffmpeg.org/ ,解压后在 bin 目录下找到 ffmpeg.exe 

ffmpeg如何实现视频截图

2、命令方式

-i 视频地址 -ss 第几帧 -f image2 图片存放地址

用cmd试一下,首先切换到ffmpeg.exe所在目录,输入命令,回车

3、c#代码实现

using (System.Diagnostics.Process process = new System.Diagnostics.Process()){
    process.StartInfo.FileName = @"D:\ffmpeg.exe";
    process.StartInfo.Arguments= @"-i D:\111.mp4 -ss 10 -f image2 D:\test\1.jpg";
    process.Start();}

或者如下:


using System.Diagnostics;
.....
            ProcessStartInfo startInfo = new ProcessStartInfo("ffmpeg物理路径");

            startInfo.WindowStyle = ProcessWindowStyle.Hidden;

            startInfo.Arguments = "  -i 视频文件路径 -y -f image2 -ss 3 -t 0.001 -s 480*360 截图物理路径";//480*360是图片分辨率

            startInfo.UseShellExecute = false;
            try
            {
                Process.Start(startInfo);
                return true;
            }
            catch
            {
            }

作者:conan5566
来源:后端修行之路

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

  • webrtc架构详解(webrtc架构图分析)

    对于WebRTC的架构说明,官方的英文文档已经说的很清楚了,所以本文可能更多的是充当这一个翻译者的角色。下面我们从上往下分别了解WebRTC的架构设计。 三层架构 首先我们从Web…

    2022年11月30日
  • WebRTC视频卡顿是什么原因

    流媒体中视频质量(会不会卡顿)、延时问题取舍一直是永恒的话题。低延时和视频卡顿之间即实时低延时和视频服务质量之间的矛盾常见的RTMP视频,基于TCP很少会出现花屏卡顿现象,但是相对WebRTC延时相对较高,但是WebRTC也存在自己的弊端,当网络情况一般时,尤其是无线连接状况下,出现丢帧的情况很常见,这样就会导致视频的短暂的卡顿。

    2022年12月12日
  • OTN-CPE多厂商互通应用探讨

    摘 要:为了降低网络成本,进一步提高专线品质,针对PeOTN网络中CPE多厂商互通提出了多种技术解耦的方案,并进行了技术方案测试和后期运维管控推演。在实践中,运营商应选择适合自身的…

    2023年12月4日
  • 显示器中的HDR10、HDR400、HDR600有什么区别?

    HDR10和HDR400、HDR500、HDR600、HDR1000等看似是类似的概念,都是HDR后面带了一个数字,但实际意义却相差甚远。 HDR10是一种使用最普遍、最广泛的HD…

    2023年2月6日
  • XSwitch通信百科之TGML铃音生成

    TGML(Tone Generation Markup Language)用于在 XSwitch 内生成各种铃音。TGML 可以直接在 XSwitch 界面上设置,如: TGML …

    2024年2月28日
  • 常见图片格式介绍

    这篇文章首先梳理了图片压缩格式的发展历程,并从中挑选了当前主流图片格式展开介绍,主要介绍不同格式的压缩方式及压缩性能对比,以期大家对不同的图片格式能有更清晰的了解,结合需求选择更适…

    2023年5月10日

发表回复

登录后才能评论