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

前言

爬取完视频发现都是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官方文档

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux系统编程十八】:(基础IO5)--动静态库共享/动静态加载问题(涉及地址空间)

【Linux系统编程十八】:动静态库共享/动静态加载问题(涉及地址空间) 一.可执行程序如何被加载的1.加载之前2.加载之后①如何执行第一条命令②缺页中断/与地址空间建立联系 二.动态库如何加载的三.动态库如何实现多进程间共享的 一.可执行程序如何被加载的…

怎么调监控清晰度,监控画面不清晰怎么修复?

监控画面不清晰怎么修复,通过调整视频的分辨率可以达到使视频更清晰的目的,另外就是如果是室外的环境下,视频的监控镜头会积累灰尘,擦一下镜头有可能会使得拍摄的视频更清晰一些。另外就是可以通过一些软件将视频分辨率提高&#…

零件更复杂、公差更严格?3D桌面引擎HOOPS助力MBD开发,优化质量流程!

在制造与计量行业,随着零件变得越来越复杂、越来越小并且需要更严格的公差,质量保证比以往任何时候都更加重要。工业4.0使基于3D模型的定义工作流程变得更加普遍,但质量流程仍然严重依赖2D图纸。从MBD数据集手动准备2D绘图非常耗时&#xff0…

mysql之squid代理服务器

(一)squid代理服务器 1、nginx做代理服务器 (1)反向代理(负载均衡) (2)缓存 (3)nginx无法做正向,通过proxy_pass进行反向代理 2、squid&…

010.Springboot之养老院管理系统

《010.Springboot之养老院管理系统》 项目简介 需要源码及数据库的私信… [1]本系统涉及到的技术主要如下: 推荐环境配置:DEA jdk1.8 Maven MySQL 前后端分离; 后台:SpringBootmybatis; 前台:LayuithymeleafjQuery; [2]功能模…

nginx反向代理配置

1.1 安装nginx 本节以安装“nginx-1.7.9”为例讲解nginx的安装方法,请确认已获取了“nginx-1.7.9.tar.gz”包。 步骤 1 以root用户登录服务器。 步骤 2 通过SSH或XFTP等工具将nginx安装包“nginx-1.7.9.tar.gz”上传到Linux服务器的“/tmp”目录下。 步骤 3 进入…

OpenAI暂停ChatGPT Plus新用户注册;迷宫与图神经网络

🦉 AI新闻 🚀 OpenAI暂停ChatGPT Plus新用户注册,考虑用户体验 摘要:OpenAI决定暂停ChatGPT Plus新用户注册,以应对开发日后使用量激增带来的压力,确保每个人都能享受良好的体验。根据调查机构Writerbudd…

LT8711UXD 是一款高性能双通道 Type-C/DP1.4 至 HDMI2.0 转换器

1. 描述 LT8711UXD 是一款高性能双通道 Type-C/DP1.4 至 HDMI2.0 转换器,设计用于将 USB Type-C 源或 DP1.4 源连接至 HDMI2.0 接收器。LT8711UXD 集成了一个 DP1.4 兼容接收器和一个 HDMI2.0 兼容发射器。此外,还包括两个 CC 控制器用于 CC 通信以实现…

【文件上传】empirecms 文件上传 (CVE-2018-18086)

1.1漏洞描述 描述: EmpireCMS(帝国网站管理系统)是一套内容管理系统(CMS)。 EmpireCMS 7.5版本中的e/class/moddofun.php文件的‘LoadInMod’函数存在安全漏洞。可利用该漏洞上传任意文件。 漏洞编号CVE-2018-18086漏洞类型文件…

NFS共享

目录 三种存储类型 作用: FTP文本传输协议 原理 FTP服务状态码 用户认证 常见FTP相关软件 vsftpd 软件介绍 用户和其共享目录 基础操作 安装服务端 客户端连接服务端 登录成功 匿名用户登录 1.服务端配置 2.客户端配置 3.服务端查看 匿名用户下载 删除…

Git 基本操作

目录 创建仓库命令 git init git clone 提交与修改 git add git status git diff git commit git reset git rm git mv git checkout git switch git restore 提交日志 git log git blame 远程操作 git remote git fetch git pull git push Git 的工作就…

C# NAudio 音频库

C# NAudio 音频库 NAudio安装NAudio简述简单示例1录制麦克风录制系统声卡WAV格式播放MP3格式播放AudioFileReader读取播放音频MediaFoundationReader 读取播放音频 NAudio安装 项目>NuGet包管理器 搜索NAudio点击安装,自动安装依赖库。 安装成功后工具箱会新增…

网站安全攻防战:守护数据的钢铁堡垒

在数字化时代,网站的安全性至关重要,因为它不仅关乎用户的隐私信息,还涉及到业务的正常运行。一旦网站受到攻击,可能导致数据泄露、服务中断等问题,因此网站安全应成为企业和个人关注的焦点。本文将探讨网站安全的重要…

GBase8a-GDCA-第一次阶段测试

文章目录 主要内容 总结 主要内容 GBase8a-第一阶段测试答案 总结 以上是今天要讲的内容,GBase8a-GDCA-第一次阶段测试题及答案。

NewStarCTF2023 Week3 Reverse方向 题目STL WP

分析 代码不多&#xff0c;逻辑挺清楚的。 先用Z3解出V7&#xff1a; from z3 import *s Solver() v1, v2, v3, v4, v5, v6 BitVecs(v1 v2 v3 v4 v5 v6, 32) v7, v8, v9, v10, v11 BitVecs(v7 v8 v9 v10 v11, 32)s.add((v1 << 15) ^ v1 0x2882D802120E) s.add((v2 …

Linux_安装docker

安装包管理工具yum-utils&#xff0c;并设置docker储存库&#xff08;如果已有&#xff0c;不用安装&#xff09; # 安装包管理工具 sudo yum install -y yum-utils # 安装docker储存库 sudo yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/cen…

ERP管理系统为何成为制造业的必备工具

ERP管理系统为何成为制造业的必备工具&#xff1f; 全球化和数字化快速发展&#xff0c;制造业面临着越来越多的挑战和机遇。为了提高生产效率、降低成本、优化资源配置&#xff0c;许多制造业企业开始引入ERP管理系统。那么&#xff0c;为何ERP管理系统成为制造业的必备工具呢…

109. 有序链表转化为二叉搜索树

题目 题解 分治。 class Solution:def getMedian(self, left: ListNode, right: ListNode) -> ListNode:找到链表的中间节点slow fast leftwhile fast ! right and fast.next ! right:slow slow.nextfast fast.next.nextreturn slowdef buildTree(self, left: ListNod…

Python爬虫实战(进阶篇)—7获取每日菜价(附完整代码)

文章目录 专栏导读背景前期准备1、网址&#xff1a;2、分析&#xff1a; 请求url、请求方法、请求参数测试一个完整代码写入Excel视频展示不足&#xff1a;结尾 专栏导读 &#x1f525;&#x1f525;本文已收录于《Python基础篇爬虫》 &#x1f251;&#x1f251;本专栏专门针…

问题汇总20231103

文章目录 前言问题汇总1.所有操作系统在CPU层面上是不是都为时间片轮转的形式处理程序&#xff1f;只是任务调度的调度算法不同&#xff1f;那多线程的本质也是时间片吗&#xff1f;只不过很小&#xff1f;2.Mcu和mpu的本质区别3.下载HAL库步骤4.RAM,ROM,SRAM,SDRAM,DDR内存5.编…