ffmpeg 命令裁剪合并

1 mp4格式:
裁剪从一个视频中的1分钟、2分钟、3分钟开始截取10秒
ffmpeg -i test_1280x720.mp4 -ss 00:01:00 -t 10 -codec copy copy1.mp4
ffmpeg -i test_1280x720.mp4 -ss 00:02:00 -t 10 -codec copy copy2.mp4
ffmpeg -i test_1280x720.mp4 -ss 00:03:00 -t 10 -codec copy copy3.mp4
在这里插入图片描述
合并:
方法1:
ffmpeg -i “concat:copy1.mp4|copy2.mp4|copy3.mp4” -codec copy out_mp41.mp4
(这个方法播放完第一个视频后,没继续播放后面的)
在这里插入图片描述
方法2:
ffmpeg -f concat -i mp4list.txt -codec copy out_mp42.mp4
在这里插入图片描述
mp4list.txt:
在这里插入图片描述
2 ts格式:
转成ts格式
ffmpeg -i copy1.mp4 -codec copy -vbsf h264_mp4toannexb copy_1.ts
ffmpeg -i copy2.mp4 -codec copy -vbsf h264_mp4toannexb copy_2.ts
ffmpeg -i copy3.mp4 -codec copy -vbsf h264_mp4toannexb copy_3.ts
在这里插入图片描述
合并:
方法1:
ffmpeg -i “concat:copy_1.ts|copy_2.ts|copy_3.ts” -codec copy out_ts1.mp4
在这里插入图片描述
方法2:
ffmpeg -f concat -i tslist.txt -codec copy out_ts2.mp4
在这里插入图片描述
tslist.txt:
在这里插入图片描述
(方法一和方法二在输出文件上时间有点不同,方法一中输出文件 时间38秒,但播放在20秒时就直接变成30秒,但画面是正常的。实际播放时间也是30秒)

3 flv格式:
转成flv格式
ffmpeg -i copy1.mp4 -codec copy copy1.flv
ffmpeg -i copy2.mp4 -codec copy copy2.flv
ffmpeg -i copy3.mp4 -codec copy copy3.flv
在这里插入图片描述
合并:
方法1:
ffmpeg -i “concat:copy1.flv|copy2.flv|copy3.flv” -codec copy out_flv1.mp4
在这里插入图片描述
(这个方法播放完第一个视频后,没继续播放后面的)

方法2:
ffmpeg -f concat -i flvlist.txt -codec copy out_flv2.mp4
在这里插入图片描述
flvlist.txt:
在这里插入图片描述
建议:1、使用方法二进行拼接
2、转成ts文件进行拼接

(分离某些封装格式(例如mp4/flv/mkv等)中的h264的时候,需要首先写入SPS和PPS,否则会导致分离出来 的数据没有SPS、PPS而 无法播放,h264码流的SPS和PPS信息存储在AVCodecContext结构体的extradata中,需要使用ffmpeg中名称为"h264_mp4toannexb"的bitstream filter处理)

不同编码格式的拼接情况
1:
修改音频编码

ffmpeg -i copy2.mp4 -vcodec copy -acodec ac3 -vbsf h264_mp4toannexb copy2_ac3.ts
此时是还可以播放的:ffplay copy2_ac3.ts
(播放时是有10秒,但知道文件显示只有4秒多)
在这里插入图片描述
mpeg -i “concat:copy_1.ts|copy2_ac3.ts|copy_3.ts” -codec copy out_ts1.mp4
ffplay out_ts1.mp4,播放完第一段就到第三段了,第二段没有了
在这里插入图片描述
1:
修改音频采样率

ffmpeg -i copy2.mp4 -vcodec copy -acodec aac -ar 96000 -vbsf h264_mp4toannexb copy2_aac.ts
在这里插入图片描述
ffmpeg -i “concat:copy_1.ts|copy2_aac.ts|copy_3.ts” -codec copy out_ts1.mp4
ffplay out_ts1.mp4,播放完第一段就到第三段了,第二段没有了
在这里插入图片描述
2:
修改视频编码格式

ffmpeg -i copy2.mp4 -vcodec libx265 -acodec copy copy2_265.ts
在这里插入图片描述
ffmpeg -i “concat:copy_1.ts|copy2_265.ts|copy_3.ts” -coc copy out_ts1.mp4
(播放到第二段时只声音正常,没画面,到第三段又恢复正常)

3:
修改视频分辨率

ffmpeg -i copy2.mp4 -vcodec libx264 -s 800x472 -acodec copy -vbsf h264_mp4toannexb copy2_264.ts
在这里插入图片描述
ffmpeg -i “concat:copy_1.ts|copy2_264.ts|copy_3.ts” -coc copy out_ts1.mp4
(可以播放)
在这里插入图片描述
最后:
1:视频分辨率可以不同,但是编码格式需要一样
2:音频编码格式需要一样,音频参数采样率、声道等也要一样的
3:把每个视频封装格式统一为ts流,在拼接输出时现设置需要的封装格式(MP4等)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/379375.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Struts2初始化流程及源码分析

1.1 Struts2初始化 在讲Struts2的初始化之前,应该为大家描述下Web应用中的过滤器Filter,这关系到我们对核心过滤器FilterDispatcher的正确理解。 Filter:一个filter是一个对象,为每个请求资源(一个servlet或静态内容) &#xff0c…

ffmpeg 命令图片和视频相互转换

1当前文件环境: ffmpeg -i test.mp4 -y -f image2 -ss 00:00:02 -vframes 1 -s 640x360 test.jpg ffmpeg -i test.mp4 -y -f image2 -ss 00:00:02 -vframes 1 -s 640x360 test.bmp 使用ffplay test.jpb ffplay test.bmp 都是可以打开的 参数介绍: -y 如…

ffmpeg命令 拉流

1: 拉流播放:rtmp (ffplay rtmp://server/live/streamName) ffplay -x 480 -y 320 rtmp://58.200.131.2:1935/livetv/cctv1 2: 拉流存储到文件:rtmp ffmpeg -i rtmp://58.200.131.2:1935/livetv/cctv1 -codec copy cctvrtmp.f…

ffmpeg 命令过滤器裁剪

1 图片操作: 原图: 使用ffplay 显示左半边 ffplay -i input.png -vf cropiw/2:ih:0:0 可以通过ffmpeg 保存 ffmpeg -i input.png -vf cropiw/2:ih:0:0 out.png 2 视频操作: 原视频: 显示左半边 ffplay -i cctvhttp.flv -vf …

[iphone-cocos2d]分享一段Objective-C可调用的游戏中播放音乐(1)

首先需要引入AudioTool 这个framework 代码 -(id)initWithPath:(NSString *)path{ UInt32 size, maxPacketSize; char*cookie; inti; if(gThereIsAnActiveTrack) { NSLog("*** WARNING *** GBMusicTrack only plays one track at a time…

提示丢失libgcc_s_dw2-1.dll问题

QT使用MinGW编译器编译中的的执行文件,执行问题 将qt中安装的mingw编码器的路径添加到环境变量path (D:\Qt\Qt5.10.1\5.10.1\mingw53_32\bin)

浅谈多线程和异步

最近很忙,因此拿出时间来写博客也算是忙里偷闲了,继承前面的一贯风格,继续浅谈胡侃。  最近在项目中遇到了Socket异步网络传输的问题,所以沉下心来整理下。于是,先问了下度娘,结果找到了园友志良的一篇文…

ffmpeg 命令添加文字水印

使用ffplay 预览一下效果: ffplay -i cctvhttp.flv -vf “drawtextfontsize100:fontfileArial.ttf:tex t‘hello world’:x20:y20:fontcolorblue:alpha0.5” -x 640 -y 480 使用ffmpeg保存为文件 : ffmpeg -i cctvhttp.flv -vf “drawtextfontsize10…

SDL_main导致main找不到入口

SDL main的错误 引用SDL.h就会报这个错误 因为SDL 将main 宏定义为 SDL_main,所以会找不到main入口 可以使用#undef main取消这个宏定义

Oracle ——如何确定性能差的 SQL

http://www.toadworld.com/KNOWLEDGE/KnowledgeXpertforOracle/tabid/648/TopicID/TSQ7/Default.aspx 本文主要说明在应用程序内书写和调优 SQL 语句。假设,你已经知道你应用程序中的哪些 SQL 语句需要注意。事实上,这不太容易。那么,我们如何…

C#中的委托和事件(续)

http://www.cnblogs.com/JimmyZhang/archive/2007/09/23/903360.html 欢迎浏览本文的后续文章: C#中的委托和事件(续)PDF 浏览:http://www.tracefact.net/Document/Delegates-and-Events-in-CSharp.pdf文中代码在VS2005下通过,由于VS2003(.Ne…

ffmpeg 命令添加图片水印

使用ffplay预览一下: ffplay -i cctvhttp.flv -vf “moviewatermark.png[watermark];[in][watermark]overlay x10:y10[out]” -x 640 -y 480 参数: 有两个过滤器movie\overlay movie:读取watermark.png输出 [watermark]可以理解自定义的的变…

C#实现动态桌面背景图片切换

问题描述:凝视桌面背景,突感如果桌面背景是变化的像win7一样,该多有意思啊。闹钟瞬间产生一个念头,用C#写一个动态切换桌面背景的图片。如何实现这个想法了,我思考了一会儿,想到了如下的一些需要解决的问题…

ffmpeg 命令画中画效果

画中画效果也是和图片水印一样使用movie配合overlay实现 使用ffplay预览一下: ffplay -i cctvhttp.flv -vf “moviecctvhttp.flv[subm];[in][subm]overlayx20:y30[o ut]” -x 640 -y 480 (可以看到是有两层视频的) 用个不同的视频再测试&…

编写一个程序,实现将存放在AX和DX中的32位数据循环右移二进制数的4位。(DX存放高字节内容,AX存放低字节内容)

编写一个程序,实现将存放在AX和DX中的32位数据循环右移二进制数的4位。(DX存放高字节内容,AX存放低字节内容) P151 例4.9 汇编思路: AX右移四位后,使用BH接收AL的低四位数据,得到BH的八位数据…

c#中textbox属性_C#.Net中的TextBox.Visible属性与示例

c#中textbox属性Here we are demonstrating use of Visible property of TextBox Control. 在这里,我们演示了TextBox Control的Visible属性的使用。 Visible property contains two values 可见属性包含两个值 True: Using this - textbox can be visible on par…

.net 笔记尝试(二)

.NET笔试题集(二) 1.using关键字有什么用?什么是IDisposable? using可以声明namespace的引入,还可以实现非托管资源的释放,实现了IDisposiable的类在using中创建,using结束后会自动调用该对象的…

网上照片之博客照片与网店照片拍摄心得

本文选自《非常摄影手记:2天玩转单反相机》一书 让照片在博客上更热的心得 1.有时美好的不仅是照片,还有拍摄照片的过程。尽量真实全面地记录自己的摄影过程,展示最感人的自我。 2.不要急功近利,不想成“名博”的博主不是好博主&a…

c语言getc函数_C语言中的getc()函数与示例

c语言getc函数C语言中的getc()函数 (getc() function in C) Prototype: 原型: int getc(FILE *filename);Parameters: 参数: FILE *filenameReturn type: int 返回类型: int Use of function: 使用功能: In the file handling…

《深入浅出WPF》笔记——绑定篇(一)

上一节,有记录写到:在WPF里,数据驱动UI,数据占核心地位,UI次之。怎么恢复数据的核心地位,那就要先了解一下Binding。 一、Binding 基础 1.1WPF中Data Binding的带来的方便 在设计架构的时间,大家…