利用FFmpeg切割视频
介绍
如果你想要从输入文件中切割一部分,需要用到ss选项。
快速定位
需要将ss放在输入文件的前面(即-i的前面)
ffmpeg-ss 00:03:00 -i Underworld.Awakening.avi -frames:v 1 elesos1.jpg

上面的命令会将大约3分钟处的画面生成一帧, 这种基于关键帧的搜索会非常快,但缺点是只能定位到关键帧,而不一定是指定的时间00:03:00,因此不太精确。
[编辑]精确定位
需要将ss放在输入文件的后面(即-i的后面)
ffmpeg-i Underworld.Awakening.avi -ss 00:03:00 -frames:v 1 elesos2.jpg

上面的命令会精确地定位到3分钟,并将该处的画面生成一帧图像。
注意上面2张图片左下角的时间,第一张为"00:02:05:05" ,第2张为 "00:02:05:06".
输入文件会一帧一帧地进行解码直到到达ss所指定的位置,因此会非常慢。而且随着指定时间越长,需要等待的时间也会越长。
[编辑]快速并且精确定位
需要在输入文件前后同时指定ss参数
ffmpeg-ss 00:02:30-i Underworld.Awakening.avi -ss 00:00:30 -frames:v 1 elesos3.jpg

这种方法综合了上面2种方法的优点。
首先快速定位到3分钟之前的某个时间点,然后从该时间点开始一帧一帧地慢慢解码到3分钟。
FFmpeg会首先快速定位到00:02:30附近的关键帧处,然后开始慢慢往后搜索30秒。结果与“精确定位”相同(左下角也是00:02:05:06),但是速度更快。
对于上面2个ss时间点(00:02:30和00:00:30)的设置依赖于关键帧的间隔(即GOP的大小),
X264默认GOP大小为250(即如果输入帧率为25fps,则每10秒一个关键帧)。
切割片断
如果想要从中间切割一段视频,可以将ss和t参数联合使用,其中t参数指定时长,例如“-ss 60 -t 10”将切割一段从60秒到70秒的片断;
或者使用to选项指定结束时间点,如“ -ss 60 -to 70”也一样切割一段从60秒到70秒的片断;选项t和to不能同时使用,如果你同时指定,默认会使用参数t。
[编辑]注意
如果你仅仅在输入文件之前(-i之前)指定了ss选项,那么时间戳会被重置为0,此时选项t和选项to产生的效果一样。
ffmpeg-ss 00:01:00 -i video.mp4 -to 00:02:00 -c copy cut.mp4 ffmpeg-i video.mp4 -ss 00:01:00 -to 00:02:00 -c copy cut.mp4
上面例子中,第一个命令会得到从00:01:00 到 00:03:00的片断,而第二个命令会真正得到从00:01:00 到 00:02:00的片断。
如果你切割的时候使用了流拷贝stream copy (-c copy),并且想用 concat demuxer来合并你切割出来的片断,你需要指定`-avoid_negative_ts 1`:
ffmpeg-ss 00:03:00 -i video.mp4 -t60-c copy -avoid_negative_ts 1 cut.mp4
[编辑]时间格式
你可以使用[HH:MM:SS]格式或者以秒为单位,如00:02:30 或者 150。如果你使用了小数,如02:30.05,小数点后面的05表示1秒*5%,即50毫秒(注:1秒=1000毫秒ms =106微秒µs)而不是帧数,如02:30.5表示2分钟,30秒,500毫秒(即半秒)。
[编辑]附
如果将-c:v copy与-ss同时使用,生成的文件可能不能播放,或者出现音视频不同步的问题,因为FFmpeg是强制基于关键帧进行切割的。
[编辑]艺搜参考
利用FFmpeg切割视频的更多相关文章
- 利用FFmpeg生成视频缩略图 2.1.6
利用FFmpeg生成视频缩略图 1.下载FFmpeg文件包,解压包里的\bin\下的文件解压到 D:\ffmpeg\ 目录下. 下载地址 http://ffmpeg.zeranoe.com/build ...
- 利用FFmpeg生成视频的缩略视频 v8.3
目前生成视频缩略图的工具大多数是生成静态的图片,为了解决这样的局限性,这 次春节期间搞了个利用 FFMpeg 能生成缩略动态视频的批处理. 把 Make_NxM_videos.bat LED_font ...
- python+ffmpeg切割视频
什么是ffmpeg 1.1 简介 FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方案.它包 ...
- 基于C#利用ffmpeg提取视频帧
利用ffmepg提取视频帧实际上是利用C#调用ffmepg命令行进行处理对应的视频,然后输出出视频帧 GetPicFromVideo("); static public string Get ...
- C# 利用ffmpeg 对视频转换系类操作 (1) 基本分析
最近公司做一个项目,开发一个视频站点.项目需求中有很多视频转换的需求,如:格式转换(flv,Mp4),视频水印,视频截图,视频合成,获取视频的基本信息(时间戳,视频大小等).经过网络的收集资料以及自己 ...
- 利用ffmpeg进行视频软解播放
前段时间,公司的一个项目需要一个rtsp的播放库,原本打算直接用vlc播放的,但我觉得vlc太庞大了,很多功能没必要,还不如用ffmpeg+d3d简单的实现一个库,因此就有了今天讲的这个东西.一个解码 ...
- 利用FFmpeg生成视频缩略图 2.3.1
1.下载FFmpeg文件包,解压包里的\bin\下的文件解压到 D:\ffmpeg\ 目录下. 下载地址 http://ffmpeg.zeranoe.com/builds/win32/static/ ...
- 利用FFmpeg生成视频缩略图 2.1.8
1.下载FFmpeg文件包,解压包里的\bin\下的文件解压到 D:\ffmpeg\ 目录下. 下载地址 http://ffmpeg.zeranoe.com/builds/win32/static/ ...
- ffmpeg切割视频
using System.Diagnostics; public static void carveVideo() { var inputpath = @"d:\1.mp4"; v ...
随机推荐
- [CF 276C]Little Girl and Maximum Sum[差分数列]
题意: 给出n项的数列A[ ], q个询问, 询问 [ l, r ] 之间项的和. 求A的全排列中该和的最大值. 思路: 记录所有询问, 利用差分数列qd[ ], 标记第 i 项被询问的次数( 每次区 ...
- 转:mac 设置root 密码
终端中输:sudo passwd rootpasswd root是修改root的命令,unix下sudo是以当前用户的身份执行root的命令,以避免输入root的密码但是sudo依赖于配置文件/etc ...
- Zend Guard Run-time support missing 问题的解决
Zend Guard是目前市面上最成熟的PHP源码加密产品了. 刚好需要对自己的产品进行加密,折腾了一晚上,终于搞定,将碰到的问题及解决方法记录下来,方便日后需要,也可以帮助其他人. 我使用的是Wam ...
- AFNetworking 下载文件断点续传操作
一:本示例代码包括: 文件下载,写入指定目录 下载进度,回调Progress; 断点续传,下载暂停,继续操作: 二:本项目 适用于 AFNetworking 1.x 版本 #pragma mark 断 ...
- Android开发调试常用命令列表
Android开发调试常用命令列表 adb命令 am am start -n com.iflytek.autofly.account/.ui.MainActivity am start -n com. ...
- mui 页面跳转
1.初始化时创建子页面 mui.init({ subpages: [{ url: your - subpage - url, //子页面HTML地址,支持本地地址和网络地址 id: your - su ...
- recess----3.Controller如何和View关联
上一篇我们讲到,Recess框架里面的controller就是一个典型的MVC框架的controller,它负责处理从浏览器(或其它客户端)过来的request,然后调用引用model里面的方法来进行 ...
- 纯css3响应式3d翻转菜单
前端开发whqet,csdn,王海庆,whqet,前端开发专家 周末快乐哈,今天来看一个纯CSS3实现的3d翻转菜单.3d响应式菜单,希望对大家有所帮助. 在线赞赏效果.在线编辑代码,或者下载收藏. ...
- hdu 5311 Hidden String 字符串
BC一周年的题.这道题做比赛的时候A了小数据,终于评判的时候还是挂了,看来还是不认真思考的问题啊.交的时候 都没有信心过肯定是不行的.认真思考.敲一发,有信心过才是真正的acmer.赛后认真想了想,发 ...
- 利用socket.io+nodejs打造简单聊天室
代码地址如下:http://www.demodashi.com/demo/11579.html 界面展示: 首先展示demo的结果界面,只是简单消息的发送和接收,包括发送文字和发送图片. ws说明: ...