电邮注册网站,wordpress 欲思,成都建设银行网站首页,网站宣传专利被罚前言
爬取完视频发现都是ts文件#xff0c;而且都是几百KB的视频片段#xff0c;.ts 全名叫#xff1a;MPEG Transport Stream#xff0c;它是一个万能的多媒体容器#xff0c;可以装下音频、视频、字幕。有时我们需要将.ts文件转换为其他更加广泛被支持的格式#xff0…前言
爬取完视频发现都是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.mp4ffmpeg -i concat:1.ts|2.ts|3.ts|4.ts|.5.ts -acodec copy -vcodec copy -absf aac_adtstoasc output.mp42、合并多个.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官方文档