ffmpeg -ss 00:00:00 -t 00:00:30 -i test.mp4 -vcodec copy -acodec copy output.mp4
  • -ss 指定从什么时间开始
  • -t 指定需要截取多长时间
  • -i 指定输入文件
    这个命令就是从00秒开始裁剪到00+30=30秒结束,总共30秒的视频。这个命令执行很快,因为只是原始数据的拷贝,中间没有什么编码和解码的过程。执行这个命令后你能得到output.mp4这个输出文件。你可以用视频播放软件播放这个视频看看。
    可能有些视频裁剪后的效果,如期望一致,00秒开始,30秒结束,总共30秒的视频,但是有些视频裁剪后你会发现可能开始和结束都不是很准确,有可能是从00秒开始,33秒结束。这是为什么呢?
    因为这些视频里30秒处地方刚好不是关键帧,而ffmpeg会在你输入的时间点附近圆整到最接近的关键帧处,然后做接下来的事情。如果你不懂什么是关键帧,没关系,这也不影响你使用这个命令。

如果你的项目要求能够接受几秒的误差,那么这个命令完全就可以满足你的需要,接下来的内容你也没有必要往下看了。
如果你的项目里要求很严格,一定要到确定的时间。那么就要用另外一种方式。
上面的造成那样的原因是所选的时间不是关键帧,那如果我们将输入的视频先转换成所有的帧都为关键帧的视频,其实就是将所有的帧的编码方式转为帧内编码(不理解帧内编码也没关系,你就当没看见它,接着往下看),这个问题就有解了。ffmpeg也可以帮我们完成这个事情。
ffmpeg -i INPUT -sameq -intra OUTPUT
-i 输入,后面是空格,紧跟着就是输入视频文件;
INPUT 输入文件;
-sameq 表示保持同样的视频质量;
-intra, 帧内编码;
OUTPUT 输出文件名。

如:
ffmpeg -i ./MyVideo.mpg -sameq -intra ./temp.mpg
这个命令的结果文件就是./temp.mpg.这个文件的视频和./MyVideo.mpg是一样的,但是你会发现这个文件会比./MyVideo.mpg大很多倍,原因就是转换前一般采用的帧间编码,转换后变成了帧内编码。这里我们说是一般,原因是有些视频文件本身就采用了帧内编码。
经过这样的处理后,我们就可以精确的剪切视频了。

注意
上面的命令在新版本中已经废弃,可以参考下面的命令

ffmpeg -i output.mp4 -strict -2  -qscale 0 -intra keyoutput.mp4

合并视频

//截取从头开始的30s
ffmpeg -ss 00:00:00 -t 00:00:30 -i keyoutput.mp4 -vcodec copy -acodec copy split.mp4
//截取从30s开始的30s
ffmpeg -ss 00:00:30 -t 00:00:30 -i keyoutput.mp4 -vcodec copy -acodec copy split1.mp4
//进行视频的合并
ffmpeg -f concat -i list.txt -c copy concat.mp4

在list.txt文件中,对要合并的视频片段进行了描述。
内容如下

file ./split.mp4
file ./split1.mp4

常用命令如下

// 去掉视频中的音频
ffmpeg -i input.mp4 -vcodec copy -an output.mp4
// -an: 去掉音频;-vcodec:视频选项,一般后面加copy表示拷贝// 提取视频中的音频
ffmpeg -i input.mp4 -acodec copy -vn output.mp3
// -vn: 去掉视频;-acodec: 音频选项, 一般后面加copy表示拷贝// 音视频合成
ffmpeg -y –i input.mp4 –i input.mp3 –vcodec copy –acodec copy output.mp4
// -y 覆盖输出文件//剪切视频
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.mp4 -vcodec copy -acodec copy output.mp4
// -ss 开始时间; -t 持续时间// 视频截图
ffmpeg –i test.mp4 –f image2 -t 0.001 -s 320x240 image-%3d.jpg
// -s 设置分辨率; -f 强迫采用格式fmt;// 视频分解为图片
ffmpeg –i test.mp4 –r 1 –f image2 image-%3d.jpg
// -r 指定截屏频率// 将图片合成视频
ffmpeg -f image2 -i image%d.jpg output.mp4//视频拼接
ffmpeg -f concat -i filelist.txt -c copy output.mp4// 将视频转为gif
ffmpeg -i input.mp4 -ss 0:0:30 -t 10 -s 320x240 -pix_fmt rgb24 output.gif
// -pix_fmt 指定编码// 将视频前30帧转为gif
ffmpeg -i input.mp4 -vframes 30 -f gif output.gif// 旋转视频
ffmpeg -i input.mp4 -vf rotate=PI/2 output.mp4// 缩放视频
ffmpeg -i input.mp4 -vf scale=iw/2:-1 output.mp4
// iw 是输入的宽度, iw/2就是一半;-1 为保持宽高比//视频变速
ffmpeg -i input.mp4 -filter:v setpts=0.5*PTS output.mp4//音频变速
ffmpeg -i input.mp3 -filter:a atempo=2.0 output.mp3//音视频同时变速,但是音视频为互倒关系
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4// 视频添加水印
ffmpeg -i input.mp4 -i logo.jpg -filter_complex [0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] -map [out] -map 0:a -codec:a copy output.mp4
// main_w-overlay_w-10 视频的宽度-水印的宽度-水印边距;
// 截取视频局部
ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4
// 截取部分视频,从[80,60]的位置开始,截取宽200,高100的视频
ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4
// 截取右下角的四分之一
ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4
// 截去底部40像素高度
ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4

参数说明:

-vcodec xvid 使用xvid压缩
-s 320x240 指定分辨率
-r fps 设置帧频 缺省25
-b <比特率> 指定压缩比特

-acodec aac 设定声音编码
-ac <数值> 设定声道数,1就是单声道,2就是立体声
-ar <采样率> 设定声音采样率,PSP只认24000
-ab <比特率> 设定声音比特率
-vol <百分比> 设定音量

-y(覆盖输出文件

-t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持
-ss position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持
-title string 设置标题
-author string 设置作者
-copyright string 设置版权
-hq 激活高质量设置

-aspect aspect 设置横纵比 4:3 16:9 或 1.3333 1.7777
-croptop size 设置顶部切除带大小 像素单位
-cropbottom size -cropleft size -cropright size
-padtop size 设置顶部补齐的大小 像素单位
-padbottom size -padleft size -padright size -padcolor color 设置补齐条颜色(hex,6个16进制的数,红:绿:兰排列,比如 000000代表黑色)
-bt tolerance 设置视频码率容忍度kbit/s
-maxrate bitrate设置最大视频码率容忍度
-minrate bitreate 设置最小视频码率容忍度
-bufsize size 设置码率控制缓冲区大小
-vcodec codec 强制使用codec编解码方式。 如果用copy表示原始编解码数据必须被拷贝。
-sameq 使用同样视频质量作为源(VBR)
-pass n 选择处理遍数(1或者2)。两遍编码非常有用。第一遍生成统计信息,第二遍生成精确的请求的码率
-passlogfile file 选择两遍的纪录文件名为file

-map file:stream 设置输入流映射
-debug 打印特定调试信息

來源:https://www.jianshu.com/p/cf1e61eb6fc8

FFMPEG 视频分割和合并相关推荐

  1. FFMPEG MKV转换为MP4以及视频分割和合并

    mkv转换为mp4 ffmpeg -i "test.mkv" -vcodec copy -acodec aac 'test.mp4' 分割命令: ffmpeg -ss 00:00: ...

  2. java ffmpeg 合并视频_android ffmpeg视频剪切与合并

    android-ffmpeg-java-demo 说明 以前一直希望可以做一个播放器,所以当时就接触了ffmpeg这个库,当时打算使用JNI的方式进行底层的调用,无奈整个逻辑比较麻烦,因此进度一再搁浅 ...

  3. ffmpeg 将视频分割为小段

    目录 1. 先看一下分割结果 2. MAC安装ffmpeg 3. ffmpeg视频分割命令介绍 4.编写java程序 (1). 调用: (2). 视频分割的java工具类 5.参考: 1. 先看一下分 ...

  4. JAVA常用工具类-【5】FFMPEG转换、分割、合并音频

    1.JAVA操作音频 package com.day.util;import java.io.*; import java.util.*;public class AudioConvert {publ ...

  5. Android 使用mp4parser进行视频的分割与合并

    mp4parser 是一个优秀的视频处理框架,下面就教大家使用mp4parser在android上进行视频的分割与合并. 2017年4月10日更新: 我发现该框架还有诸多问题和BUG,比如无法合并不同 ...

  6. 【DIY】FFmpeg Joiner – 多段视频「无损合并」小工具 [Windows]

    http://subscribe.mail.10086.cn/subscribe/readAll.do?columnId=280&itemId=6082779 FFmpeg Joiner – ...

  7. vue怎么合并两个视频_【软件分享】视频分割合并软件哪款好用呢?怎么剪切合并视频?...

    现在有很多小伙伴都喜欢喜欢自己拍视频上传到各大视频平台,有时候会遇到关于视频剪辑方面的难题,比如说,视频怎么剪切?怎么将两段小视频合并成一个呢?这些都是一些比较常常遇到的问题,今天小编就给大家介绍一款 ...

  8. 如何将多个excel表格合并成一个_如何将一个视频分割成多个片段

    视频已经成为我们日常娱乐必备的工具之一,我们常用的应该就是腾讯,爱奇艺,芒果TV,优酷这些,在追剧的过程中不免会看到有趣的片段,对于女生来说,或许会把自己喜欢的爱豆的视频剪辑到一起,那今天小编先带大家 ...

  9. ffmpeg 常用命令总结:(avi转MP4、MP4转ts、视频压缩、去除视频声音、合并音频和视频)

    文章目录 配置 说明: 0.ffmpeg一些命令参数: a) 通用选项 b) 视频选项 c)高级视频选项 d)音频选项 e)音频/视频捕获选项 f)高级选项 1.avi转MP4命令: 2.MP4转ts ...

最新文章

  1. [转] 利用CORS实现跨域请求
  2. 创建一个plugin - drupal 8
  3. jQuery就业课系列之.jQueryDOM
  4. .xyz域名注册总量TOP10服务商:中国占据4个席位
  5. mysql数据库加载太慢_使用MySQL数据库很慢
  6. kmp 学习【字符串-kmp学习】
  7. Java容器Set接口
  8. [转]二维图形的矩阵变换(一)——基本概念
  9. ffmpeg多路同时推流
  10. 决策支持系统4个基本组成部分
  11. Java IO流体系图(图)
  12. 路由器或交换机密码忘了——带你修改路由器+交换机密码
  13. linux系统旋转屏幕命令,Archlinux 实现屏幕旋转
  14. python中numpy模块下的np.clip()的用法
  15. 使用Kali上的Metasploit获取ssh登录到靶机权限
  16. RewriteRule参数
  17. 清除微信公众号缓存方法(安卓手机+苹果手机)
  18. USBHID-BUS Hound能抓到数据但上位机读不到数据
  19. 机械革命3060 win10 离线安装卸载cuda11.1、cudnn、anaconda pytorch环境全纪录
  20. 网盘:MEGASync

热门文章

  1. python实现AHP算法(层次分析法)
  2. 【C语言】斐波那契数列【递归与迭代】
  3. c语言作业 -教师评价系统
  4. html table 好看样式,好看的Table CSS 样式表
  5. mooc作业怎么上传附件_适合团队协作的工作便签软件怎么在团队便签中上传附件文件?_纳图电脑维修...
  6. 小睿家庭云可以刷linux系统吗,小睿家庭云刷机方法,刷入openwrt pandorabox padavan方法,刷路由器固件...
  7. 文件查找(locate、find)
  8. java毕业设计网站基于JSP的在线调查问卷系统|投票[包运行成功]
  9. RAID中有一块硬盘离线的情况下应该对其采取强制上线操作么?
  10. 【数据挖掘】2022数据挖掘之数据的高级处理(消除缺失值、数据离散化、合并等)