使用FFmpeg合并多个ts视频文件转为mp4格式

news/2024/7/10 20:43:51 标签: ffmpeg

前言

爬取完视频发现都是ts文件,而且都是几百KB的视频片段,.ts 全名叫:MPEG Transport Stream,它是一个万能的多媒体容器,可以装下音频、视频、字幕。有时我们需要将.ts文件转换为其他更加广泛被支持的格式,比如mp4格式,这样就可以在各种设备上播放和分享。

实现

ts转换有多种方式,可以下载第三方软件(请自行下载安装)进行转换,也可以使用FFmpeg软件进行转换。下面将介绍使用FFmpeg将.ts转换为MP4。

一、单个.ts文件转为MP4格式。

1、首先,下载并安装FFmpeg。这是一个功能强大的多媒体工具,它可以把 .ts 变成 MP4。你可以在FFmpeg官网找到它。windows下下载zip文件解压配置环境就可以使用。

2、打开命令行,在Windows上,你可以按下Win + R,输入"cmd",然后按Enter。在macOS上,找到终端应用。

3、前往目标文件夹:使用 "cd" 命令导航到 .ts 文件所在的文件夹。比如你的 .ts 文件在"D:\Videos"文件夹中,那就输入:

cd D:\Videos

3.1、输入ffmpeg命令,就可以将 .ts 转为 MP4

ffmpeg -i yourfilename.ts output.mp4

将 yourfilename.ts 替换为你的 .ts文件名称,output.mp4为你想要的输出的文件名。

回车后,等待FFmpeg完成,就可以得到一个全新的MP4文件。

二、将多个.ts文件合并为一个MP4文件。

1、合并少量.ts文件

直接写文件名,文件之间使用 | 隔开。如下所示:

ffmpeg -i "concat:1.ts|2.ts|3.ts|4.ts|.5.ts|" -c copy output.mp4

ffmpeg -i "concat:1.ts|2.ts|3.ts|4.ts|.5.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4

2、合并多个.ts文件

需要将多个.ts文件名路径保存再一个txt文档中,而且格式必须一致,不能有中文,比如:file.txt文件,格式如下:file '文件路径'

2.1、新建file.txt文档:

file 'D:\Videos\1.ts'
file 'D:\Videos\2.ts'
file 'D:\Videos\3.ts'
file 'D:\Videos\4.ts'
file 'D:\Videos\5.ts'

注意:这里必须是单引号,双引号会报错。

2.2、执行FFmpeg命令

# -safe 0: 防止Operation not permitted
ffmpeg.exe -f concat -safe 0 -i file.txt -c copy out.mp4

有时使用上面的命令会出现如下错误: alformed AAC bitstream detected: use the audio bitstream filter 'aac_adtstoasc' to fix it ('-bsf:a aac_adtstoasc' option with ffmpeg)

原因:
音频数据是AAC流,在解码时需要ADTS(Audio Data Transport Stream)头部,不管是容器封装还是流媒体,没有这个,一般都是不能播放的。

改为输入下面的命令即可解决:

ffmpeg -f concat -safe 0  -i file.txt -c:v copy -c:a copy -bsf:a aac_adtstoasc output.mp4

至此文件就合并完成啦。

下面讲解FFmpeg下载与安装过程

 1、首先,打开FFmpeg官网下载。

点开后,下载如下文件 

2、下载后解压,配置环境变量

下载解压后,再bin文件夹下能看到三个可执行程序:ffmpeg、ffplay、ffprobe,将bin文件夹配置到环境变量,配置好后即可使用。

验证是否成功:cmd窗口,输入:ffmpeg -version。如下图所示即表示安装成功。

3、简单使用

3.1、使用ffmpeg获取视频的一些信息:

ffprobe -show_format D:\恼人的秋风.mp4

3.2、播放音频文件命令:

ffplay D:\恼人的秋风.mp4

这时候就会弹出来一个窗口,一边播放MP3文件,一边将播放音频的图画到该窗口上。针对该窗口的操作如下:

点击该窗口的任意一个位置,ffplay会按照点击的位置计算出时间的进度,然后seek到计算出来的时间点继续播放。
按下键盘的左键默认快退10s,右键默认快进10s,上键默认快进1min,下键默认快退1min。
按ESC就退出播放进程,按W会绘制音频的波形图。

4、介绍FFmpeg 组成

构成FFmpeg主要有三个部分

4.1、第一部分是三个作用不同的工具软件,分别是:
ffmpeg.exe、ffplay.exe、 ffprobe.exe。

ffmpeg.exe:音视频转码、转换器
ffplay.exe:简单的音视频播放器
ffprobe.exe:简单的多媒体码流分析器
4.2、第二部分是可以供开发者使用的 SDK,为各个不同平台编译完成的库。

如果说上面的四个工具软件都是完整成品形式的玩具,那么这些库就相当于乐高积木一样,我们可以根据自己的需求使用这些库开发自己的应用程序。这些库有:

libavcodec:包含音视频编码器和解码器
libavutil:包含多媒体应用常用的简化编程的工具,如随机数生成器、数据结构、数学函数等功能
libavformat:包含多种多媒体容器格式的封装、解封装工具
libavfilter:包含多媒体处理常用的滤镜功能
libavdevice:用于音视频数据采集和渲染等功能的设备相关
libswscale:用于图像缩放和色彩空间和像素格式转换功能
libswresample:用于音频重采样和格式转换等功能

4.3、第三部分是整个工程的源代码,无论是编译出来的可执行程序还是SDK,都是由这些源代码编译出来的。

FFmpeg 的源代码由C语言实现,主要在 Linux 平台上进行开发。FFmpeg 不是一个孤立的工程,它还存在多个依赖的第三方工程来增强它自身的功能。在当前这一系列的博文/视频中,我们暂时不会涉及太多源代码相关的内容,主要以 FFmpeg 的工具和SDK的调用为主。到下一系列我们将专门研究如何编译源代码并根据源代码来进行二次开发。

5、关于ffmpeg的命令行参数,查看ffmpeg官方文档


http://www.niftyadmin.cn/n/5187992.html

相关文章

2023年中国冲击波治疗仪市场发展趋势分析:未来市场增长空间更大[图]

冲击波在临床医学领域最早应用于体外冲击波碎石,在二十世纪八十年代末期,体外冲击波碎石技术开始被运用到骨科及康复理疗领域,经过十余年的临床研究,冲击波疗法日益完善,应用范围也日益扩大。冲击波作为一种介于保守疗…

力扣labuladong——一刷day30

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣104. 二叉树的最大深度二、力扣543. 二叉树的直径三、力扣144. 二叉树的前序遍历 从遍历角度和分解角度处理树问题 前言 一、力扣104. 二叉树的最大深…

3.6 Windows驱动开发:内核进程汇编与反汇编

在笔者上一篇文章《内核MDL读写进程内存》简单介绍了如何通过MDL映射的方式实现进程读写操作,本章将通过如上案例实现远程进程反汇编功能,此类功能也是ARK工具中最常见的功能之一,通常此类功能的实现分为两部分,内核部分只负责读写…

免费的快速手机文件解压APP,快冲

各位小伙伴们大家好,今天我要介绍一款手机上必备的神奇工具!你有没有经常遇到需要解压文件情况呢?还在为不知道用哪个软件而烦恼吗?别担心,我给你带来了解决方案 ,就是这一款免费的解压精灵。 解压精灵是一…

高济健康:数字化科技创新与新零售碰撞 助推医疗产业优化升级

近日,第六届中国国际进口博览会在上海圆满落幕,首次亮相的高济健康作为一家专注大健康领域的疾病和健康管理公司,在本届进博会上向业内外展示了围绕“15分钟步行健康生活圈”构建进行的全域数字化升级成果。高济健康通过数字化科技创新与新零…

C++第一讲:起源和规范

面向过程和面向对象 大千世界中,事务的发展规律都是面向过程的状态。例如一颗种子从生根到发芽,从发芽到开花,从开花到结果。 但是面向过程是一个更贴近**“机械”**的表达方式,而更贴近人类思想的却是面向对象的表达方式。 以…

GetKeyState获取键盘状态(原神水龙王转转转)

先上代码&#xff1a; #include<iostream> #include<Windows.h> int main(){std::cout << "按住鼠标侧键开始旋转&#xff0c;记得要以管理员身份运行&#xff01;\n";while(true){if(GetKeyState(VK_XBUTTON1) < 0){std::cout << "…

2023年中国机动车拍卖网络化趋势加速,网络拍卖专场数量大幅上升至47489场[图]

2022年&#xff0c;由于机动车拍卖网络化趋势继续加速&#xff0c;网络拍卖专场数量大幅上升&#xff0c;全国机动车专场拍卖会高达59450场&#xff0c;较上年攀升125.31%。在389家拍卖企业中&#xff0c;举办场次超过100场的企业有27家&#xff0c;合计54850场&#xff0c;占比…