做国外单的网站叫什么,广告设计与制作课程,笔记本电脑安装wordpress,重庆做商城网站建设文章目录 前言源代码FFmpeg的安装1 下载2 安装 前言 参考#xff1a; python 合并 ts 视频#xff08;三种方法#xff09;使用 FFmpeg 合并多个 ts 视频文件转为 mp4 格式 Windows 平台下#xff0c;用 Python 合并 ts 文件为 mp4 文件常见的有三种方法#xff1a;
调用… 文章目录 前言源代码FFmpeg的安装1 下载2 安装 前言 参考 python 合并 ts 视频三种方法使用 FFmpeg 合并多个 ts 视频文件转为 mp4 格式 Windows 平台下用 Python 合并 ts 文件为 mp4 文件常见的有三种方法
调用 COPY 指令运行copy /b *.ts output.mp4需要注意的是[1]这里提到的 copy 指令应该运行在 cmd 中而不是 PowerShell 中。因为 Windows 在 PowerShell 的时候运行 copy 指令会调用内置的 Copy-Item 命令和 cmd 调用的 copy 在用法和功能上都不相同。若你非要在 PowerShell 中运行 CMD 的 COPY 指令你可以使用cmd /c copy /b *.ts output.mp4。Python 文件读写使用 open, read, write 这些指令去合并注意打开文件的方式是 rb 和 wb使用 ffmpeg运行ffmpeg -f concat -safe 0 -i file.txt -c copy output.mp4其中file.txt中每行的格式是file xxx.ts或者运行ffmpeg -i concat:1.ts|2.ts -c copy output.mp4其中 1.ts|2.ts 需要换成自己的 ts 文件名列表并以|分隔。
需要注意的是以上的三种方式都需要 TS 文件名排序按照实际的播放顺序。如果文件名与实际播放顺序不符合那需要修改一下文件的名字。
其中前两种方式合并的视频时长都可能出错。这也是我写这篇文章的原因。第三种方式 ffmpeg 是最稳健的。比如 copy 指令合并了 100 个 ts 文件但是打开之后发现合并的结果竟然只有十多秒并且更离谱的是这十多秒放完之后这个视频并不会暂停而是会继续往后播放并且播放的内容是正确的。这种情况我的建议是大量的 ts 合并就直接使用第三种方式 ffmpeg这就是我提出的解决办法。
源代码
这三种方式的 python 代码如下想用哪一种方式就把其他两种方式的代码注释掉就可以。 请把以下源代码放在 ts 文件所在的目录下。 其中前两种方式不需要安装任何的东西。而第三种方式需要安装 ffmpeg并添加环境变量。安装方式会在后文提到。
# combine ts to mp4import os
file_names os.listdir(os.getcwd())# 过滤出非空的 ts 文件
file_names [file_name for file_name in file_names if file_name.endswith(.ts) and os.path.getsize(file_name) ! 0]# 方式一用 COPY 指令合并
file_names_combine .join(file_names)
os.system(fcopy /b {file_names_combine} output.mp4)# 方式二用 python 代码合并
with open(output.mp4, wb) as f:for file_name in file_names:with open(file_name, rb) as f1:f.write(f1.read())# 方式三用 ffmpeg 合并
# 3.1 少量 ts 文件
file_names_combine |.join(file_names)
os.system(fffmpeg -i concat:{file_names_combine} -c copy output.mp4)
# 3.2 大量 ts 文件
file_names_file tmp_random_file.txt
with open(file_names_file, w) as f:# file xxx.tsfor file_name in file_names:f.write(ffile {file_name}\n)
os.system(fffmpeg -f concat -safe 0 -i {file_names_file} -c copy output.mp4)
os.remove(file_names_file)这里的第三种方式中分两种情况一种是 ts 数量比较少的可以直接字符串拼接来完成指令另一种是数量比较多的建议用文件因为第一种有数量限制。
FFmpeg的安装
1 下载
官网Download FFmpeg 官网的下载路径比较曲折点来点去反正最后可以点到 Github 上Releases · BtbN/FFmpeg-Builds点开这个链接然后根据自己的版本下载一个就行如下图所示 2 安装
解压记住自己解压的位置然后打开那个位置。比如你解压的路径假如叫做D:\software\ffmpeg那你就将D:\software\ffmpeg\bin添加到环境变量里面这样你在终端里就可以找到ffmpeg指令了。 安装好了之后打开 CMD输入ffmpeg应该能看到如下内容 本账号所有文章均为原创欢迎转载请注明文章出处https://blog.csdn.net/qq_46106285/article/details/140321819。百度和各类采集站皆不可信搜索请谨慎鉴别。技术类文章一般都有时效性本人习惯不定期对自己的博文进行修正和更新因此请访问出处以查看本文的最新版本。