ffmpeg 分割和合并
剪切yuv片段
剪切yuv 从201帧到700帧 闭区间 (常用!!!)
ffmpeg -threads 16 -s 1920x1080 -pix_fmt yuv420p -i input.yuv -vf select='between(n\,201\,700)' xxx.yuv
=========================================================================
# 将码流分段解出yuv,每段持续2秒,总共最多解500帧,指定输出分辨率为f_p444_b10
# ( 注意直接使用命令行时用一个""%"",在脚本中要转义用""%%"")"
剪切mp4,每10秒一个yuv切片
ffmpeg_4.2.1 -threads 16 -i xxx.mp4 -s 1920x1080 -pix_fmt yuv420p -f segment -segment_time 10 output_%04d.yuv
https://astraywu.github.io/2019/04/27/ffmpeg/ffmpeg%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/
剪切yuv,每10秒一个yuv切片
ffmpeg_4.2.1 -threads 16 -s 1920x1080 -pix_fmt yuv420p -i xxx.yuv -pix_fmt yuv420p -f segment -segment_time 10 output_%04d.yuv
剪切yuv前30帧,输出yuv
ffmpeg -threads 16 -s 1920x1080 -pix_fmt yuv420p -i input.yuv -vf select="gt(n\, -1)" -vframes 30 out30.yuv
https://blog.csdn.net/SoaringLee_fighting/article/details/80503240 (付费博客)
剪切mp4片段
从0秒分割长度30秒的视频
ffmpeg -threads 16 -ss 00:00:00 -t 00:00:30 -i test.mp4 -c:v copy -c:a copy output.mp4
ffmpeg -threads 16 -ss 00:00:00 -t 00:00:30 -i test.mp4 -c:v libx264 -c:a copy -preset fast -crf 18 output.mp4
剪切HDR mp4视频:
ffmpeg -threads 16 -ss 00:00:00 -t 00:00:30 -i test.mp4 -c:v libx265 -x265-params "pass=1:open-gop=0:b-adapt=0:keyint=125:sao=1:amp=1:log2-max-poc-lsb=6:hrd=1:master-display=G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,20):max-cll='898,315':sar=1:videoformat=5:colorprim=9:transfer=16:colormatrix=9:chromaloc=2" -c:a copy -preset fast -crf 18 output.mp4
https://www.jianshu.com/p/cf1e61eb6fc8
剪切出来的片段,改变封装格式
ffmpeg -threads 16 -ss 00:10:00 -t 00:10:00 -i xxx.mov -pix_fmt yuv420p10le -c:v libx265 -preset fast -crf 18 xxx.mp4
# 按帧数截取视频(没有音频)
ffmpeg -threads 16 -i aaa.mp4 -an -vf "select=between(n\,101\,300),setpts=PTS-STARTPTS" -c:v libx264 -preset fast -crf 18 output.mp4
https://lingyunfx.com/2020/11/21/ffmpeg-used01/
合并多个mp4
方法一:FFmpeg concat 协议 (不太好用)
对于 MPEG 格式的视频,可以直接连接:
ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg
对于非 MPEG 格式容器,但是是 MPEG 编码器(H.264、DivX、XviD、MPEG4、MPEG2、AAC、MP2、MP3 等),可以包装进 TS 格式的容器再合并。在新浪视频,有很多视频使用 H.264 编码器,可以采用这个方法
ffmpeg -i input1.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input1.ts
ffmpeg -i input2.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input2.ts
ffmpeg -i input3.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input3.ts
ffmpeg -i "concat:input1.ts|input2.ts|input3.ts" -c copy -bsf:a aac_adtstoasc -movflags +faststart output.mp4
保存 QuickTime/MP4 格式容器的时候,建议加上 -movflags faststart。这样分享文件给别人的时候可以边下边看。
方法二:FFmpeg concat 分离器 (mp4格式不太成功)
这种方法成功率很高,也是最好的,但是需要 FFmpeg 1.1 以上版本。先创建一个文本文件filelist.txt:
file 'input1.mkv'
file 'input2.mkv'
file 'input3.mkv'
然后:
ffmpeg -threads 16 -i xxx.mp4 -c:v copy -c:a copy xxx.mkv
ffmpeg -threads 16 -f concat -i filelist.txt -vcodec copy -acodec copy output.mp4
提示
以上三种方法,在可能的情况下,最好使用第二种。第一种次之,第三种更次。第四种是后备方案,尽量避免。
规格不同的视频合并后可能会有无法预测的结果。
有些媒体需要先分离视频和音频,合并完成后再封装回去。
对于 Packed B-Frames 的视频,如果封装成 MKV 格式的时候提示 Can't write packet with unknown timestamp,尝试在 FFmpeg 命令的 ffmpeg 后面加上 -fflags +genpts
https://blog.csdn.net/doublefi123/article/details/47276739
MPEG格式
MPEG-1:
这种视频格式的文件扩展名包括.mpg、.mlv、.mpe、.mpeg及VCD光盘中的.dat文件等。
MPEG-2:
这种视频格式的文件扩展名包括.mpg、.mpe、.mpeg、.m2v及DVD光盘上的.vob文件等。
http://www.fengyesoft.com/skills/skill-mpg-004.html
合并两个音频 (???)
ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex amerge -ac 2 -c:a libmp3lame -q:a 4 output.mp3
https://www.jianshu.com/p/2a824f13b2af
mp4左右上下合并
ffmpeg -i input1.mp4 -i input2.mp4 -lavfi hstack -c:v libx264 -c:a copy -preset fast -crf 12 output.mp4
参数hstack代表是横向合并,也就是左右合并,横向合并的形象类比为“川”;如果是竖向合并,也就是上下合并,用参数vstack
https://www.twblogs.net/a/5c852e8abd9eee35fc1407c2/zh-cn
https://xueli.li/2019/05/21/ffmpeg-commands/
https://codeday.me/bug/20190824/1706337.html
https://bbs.csdn.net/topics/391912129
https://blog.csdn.net/a386115360/article/details/89465633
https://trac.ffmpeg.org/wiki/Create%20a%20mosaic%20out%20of%20several%20input%20videos
ffmpeg -threads 16 -s 1920x1080 -pix_fmt yuv420p -i input1.yuv -s 1920x1080 -pix_fmt yuv420p -i input2.yuv -lavfi hstack output.yuv
ffmpeg 分割和合并相关推荐
- Ubuntu下使用ffmpeg分割和合并视频文件
1.ffmpeg的安装 sudo apt install ffmpeg 2.裁剪视频文件 ffmpeg -ss 00:00:00 -i input_file.mp4 -vcodec copy -aco ...
- ffmpeg分割视频,制作gif图,加水印、去水印,视频拼接
一.分割视频 进入ffmpeg的目录: (1)执行从0分钟开始,剪切5分钟: ./ffmpeg -ss 00:00:00 -i /111/Movies/a2009.mp4 -t 00:05:00 a2 ...
- Android 使用mp4parser进行视频的分割与合并
mp4parser 是一个优秀的视频处理框架,下面就教大家使用mp4parser在android上进行视频的分割与合并. 2017年4月10日更新: 我发现该框架还有诸多问题和BUG,比如无法合并不同 ...
- Linux下分割与合并文件的方法
Linux下分割与合并文件的方法 切割合并文件在linux下用split和cat就可以完成.下面举些实例进行说明. 1.文件切割 文件切割模式分为两种: 文本文件 二进制模式. 1.1文本模式 文本模 ...
- python 字符串split 正则分割 换行符_python数据分析实战-JOINamp;SPLIT分割与合并
string字符串的分割与合并: #大写和小写的 import numpy as np a=np.char.lower(['HELLO','PYTHON']) print(a) 结果:['hello' ...
- thinkphp5 图片压缩旋转_【好工具】在线免费无限制的PDF处理工具(转换、编辑、分割、合并、压缩)...
在线好用的 PDF 编辑工具,PDF 转文档,PDF 压缩.编辑.分割不再难,解密 PDF 文档也在行,快来试试- 作者 & 编辑 | Leong SmallPDF SmallPDF http ...
- java io大文件_JavaIO流对大文件进行分割与合并
对于大文件传输不方便时候可以试一下分割之后再操作: package com.lym; import java.io.BufferedInputStream; import java.io.Buffer ...
- java 输入流可以合并吗_Java 使用IO流实现大文件的分割与合并实例详解
java 使用IO流实现大文件的分割与合并 文件分割应该算一个比较实用的功能,举例子说明吧比如说:你有一个3G的文件要从一台电脑Copy到另一台电脑, 但是你的存储设备(比如SD卡)只有1G ,这个时 ...
- python拆分合并文件_python实现文件的分割与合并
使用Python来进行文件的分割与合并是非常简单的. python代码如下: splitFile--将文件分割成大小为chunksize的块: mergeFile--将众多文件块合并成原来的文件: # ...
- apache hbase的region 分割与合并
原文地址:APACHE HBASE REGION SPLITTING AND MERGING 本文我们将深入探讨hbase的核心领域之一:region分割与合并. 具体来说,我们将详细讨论hbase ...
最新文章
- java jar包命令行下可以双击不运行解决方法(改变java默认图标)
- 500px不一样的读图
- Boost:验证atomic <>不对函数指针提供算术运算
- docker配置 nacos_Nacos - 阿里开源配置中心
- 软件测试java三角形形状判定,软件测试技术基础实验——Junit 安装与 三角形问题的测试...
- 设计模式实例(Lua)笔记之六(Adapter模式)
- JavaScript:Boolean对象
- 算法比赛玩腻了?试试这个不一样的 Java 编程挑战赛!
- SoapUI 接口测试偶遇返回值乱码解决
- SSS1629USB麦克风方案设计原理
- 因为Google Chrome中Software Reporter Tool占CPU用过高,我选择转战Microsoft Edge浏览器,电脑至于不卡了
- backtrack5实现局域网DNS欺骗
- MyHDL中文手册(六)—— RTL建模
- OpenStack 2015.1.0 (Kilo)更新日志
- win10cmd切换目录
- 锐捷交换机配置ssh password登录命令
- IDEA导入主题皮肤
- Jlink V8 灯不亮,重刷固件(亲测可用)
- 非洲 喀麦隆 Paul Epete CAGNOB 超大订单 骗局
- 番茄花园移花接木和微软的36计
热门文章
- EasyNLP发布融合语言学和事实知识的中文预训练模型CKBERT
- EMQ压力测试及系统优化(单机11万并发连接)
- c语言void* arg,void * arg什么意思
- java duration 时间差_Java Duration toDays()用法及代码示例
- php x forwarded for,代码审计树洞X_FORWARDED_FOR注入
- 梳理50道经典计算机网络面试题
- 计算器linux源码,强悍的C++程序实现计算器的linux源程序(国外英文资料).doc
- ClickHouse-物化视图
- 高等数学 —— 数列的极限
- PCIe5.0的Add-in-Card(AIC)金手指layout建议(一)