ffmpeg 将拆分的数据合成一帧_FFMPEG 视频分割和合并
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 打印特定调试信息
ffmpeg 将拆分的数据合成一帧_FFMPEG 视频分割和合并相关推荐
- ffmpeg 将拆分的数据合成一帧_FFmpeg 简单合成 MP4 :视频解封与重新封装
教程代码:[Github传送门:https://github.com/ChenLittlePing/LearningVideo] 目录 一.Android音视频硬解码篇: 二.使用OpenGL渲染视频 ...
- ffmpeg 将拆分的数据合成一帧_FFmpeg + OpenGLES 实现视频解码播放和视频滤镜
FFmpeg 开发系列连载: FFmpeg 开发(01):FFmpeg 编译和集成 FFmpeg 开发(02):FFmpeg + ANativeWindow 实现视频解码播放 FFmpeg 开发(03 ...
- FFMPEG 视频分割和合并
ffmpeg -ss 00:00:00 -t 00:00:30 -i test.mp4 -vcodec copy -acodec copy output.mp4 -ss 指定从什么时间开始 -t 指定 ...
- python 视频抽帧_FFmpeg视频抽帧那些事
视频文件是多媒体数据中比较常见的一种,也是入门门槛比较高的一个领域.视频数据相关的领域任务包括视频物体检测.视频物体追踪.视频分类.视频检索和视频摘要抽取等. 视频数据与图像数据非常类似,都是由像素点 ...
- FFMPEG MKV转换为MP4以及视频分割和合并
mkv转换为mp4 ffmpeg -i "test.mkv" -vcodec copy -acodec aac 'test.mp4' 分割命令: ffmpeg -ss 00:00: ...
- python (语音)信号拆分为数据块,计算短期能量和过零率
学习目标(ILO): 您应该 了解如何将(语音)信号拆分为数据块(帧)并在这些块上进行分析/转换 计算短期能量和过零率并将它们可视化以区分浊音和清音语音部分 了解相关性的基础知识并能够实现相关性估计器 ...
- ffmpeg进行混音,将两路音频pcm数据合成一路输出
ffmpeg进行混音,将两路音频pcm数据合成一路输出 audiomixer.h #ifndef AUDIOMIXER_H #define AUDIOMIXER_H#include <map&g ...
- 基于深度学习方法的3D数据合成
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 3D 数据简介 人们普遍认为,从单一角度合成 3D 数据是人类视觉的基本功能.但这对计算机视觉算法来说 ...
- 工作记录--使用FFmpeg将一个视频文件中音频合成到另一个视频中
由于工作需要,临时被老大吩咐去研究一个FFmpeg工具,通过linux命令行去将一个视频中的音频提取出来并合成到另一个视频中,最终的效果是要保证2个视频中的音频都在一个视频中播放. 但是本人对FFmp ...
- FFmpeg获取网络摄像头数据解码
对USB摄像头实时编码,在前面已经探讨过了.这次改变下思路,尝试去截取网络摄像头的H264码流,将其解码播放. 这里的测试代码,是在海康摄像头的基础上进行的. 解码的大致流程和以前的保持一致,只不过增 ...
最新文章
- Spark Mllib里的Mllib基本数据类型(图文详解)
- zabbix对一台主机监控的操作
- 实验室装水的容器叫什么_@实验员丨实验室超纯水机正确取水,你做到了吗?...
- Redis缓存穿透 缓存击穿 缓存雪崩原因及其解决方案
- java ddd 领域事件_Cribbb基于DDD/Domain Event领域事件的开源PHP通知系统
- NGUI中的Table自定义排序
- erp oracle mrp,OracleERP用戶手册-MRP.doc
- cs python_python_13(前端—cs)
- SSD选购扫盲指南M.2接口硬盘选择:NVMe于sata3
- 快速傅里叶变换(FFT):蝶形算法(CT蝴蝶、GS蝴蝶)
- html创建站点文件夹,Dreamweaver站点中新建文件夹和修改/删除/移动文件的操作方法...
- 服务器硬盘坏道修复教程视频,坏道和坏块什么区别?硬盘高级修复教程来了
- 打印机经常遇到的一些问题
- 飞信WEB接口的一个返回网页C#处理源码
- 挂牌!迎来【济南网络空间安全山东省实验室】等三所实验室!
- CSS基础(二)--盒模型与浮动
- matlab 检测键盘,matlab检测键盘
- labview 控件变透明
- 多年心路历程见证从技术小白到收获BAT等大厂研发offer,分享一些经验和感悟
- html5画布画出折线图,canvas 画出动态折线图
热门文章
- 181101每日一句
- Eye Tracking Methodology Theory and Practice, Third Edition
- 扇贝有道180918每日一句
- Atitit postgresql data type 数据类型与mysql对应表 数据库常用数据类型 	Postgre	Mysql	 整数	intgreter	Int	 小数	numeric	FL
- Atitit 信息化建设纲要 艾提拉著
- Atitit 身份证 证件编码规范
- atitit.attilax的软件 架构 理念.docx
- Python :h5py 如何对dataset进行重新赋值?
- 全球前十大证券交易所在区块链领域的探索和布局
- (转)知乎:有哪些好笑的关于程序员的笑话?