马可solo 发表于 2022-1-24 23:10

[win/py]合并视频小工具

# 合并视频小工具

## 情景

有时候我们需要直接合并许多视频分片(比如流媒体ts流 / 英伟达录制),而不是用非编软件二压(这样很慢且有损),ffmpeg可以做到这一点,但命令行用起来比较麻烦,于是我写了这么一个Python小脚本,一步到位。

## 准备

1. 要合并的视频(2个或以上)**(分辨率、帧率等关键参数要一致)**
2. (https://www.python.org/)(因为是py脚本)
3. (http://ffmpeg.org/)(下载安装版,因为会帮你配置环境变量)

## 步骤

1. 复制粘贴代码保存为`***.py`
2. 双击运行(当然也可以用命令行运行)
3. 根据提示操作

## 注意事项

1. 虽然不会有什么问题,不过还是建议操作前备份
2. 重命名为了方便,用的是win10的逻辑,**注意要按住`ctrl`倒着选中**,如果文件很多也可用`shift`,可以看gif理解
   ![](https://s4.ax1x.com/2022/01/24/7oDHBQ.gif)

## 脚本

```python
import os

n = input('视频(mp4格式)和脚本位于同一路径下,并在该路径下运行脚本(双击或命令行)\n按合并顺序选中视频并重命名为v,重命名后视频序列形为:“v (1).mp4”、“v (2).mp4”、“v (3).mp4”……\n然后输入视频总数:')
n = int(n)

# mp4转ts
for i in range(n):
        i = i+1
        cm = 'ffmpeg -i "v (' + str(i) + ').mp4" -c copy -f mpegts -bsf:v h264_mp4toannexb ' + str(i) + '.ts'
        os.system(cm)

# 合并ts
series = ''
for i in range(n):
        i = i+1
        series += str(i) + '.ts'
        if i < n:
                series += '+'
cm = 'copy /b ' + series +' tempfile.tmp'
os.system(cm)

# ts转mp4
cm = 'ffmpeg -i tempfile.tmp -c copy -bsf:a aac_adtstoasc merge.mp4'
os.system(cm)

# 删除临时文件
for i in range(n):
        i = str(i+1) + '.ts'
        os.remove(i)
os.remove('tempfile.tmp')

input('任务结束,按回车键退出')

```

## END

马可solo 发表于 2022-6-12 13:32

开源在https://github.com/MC-dusk/video-merger

马可solo 发表于 2022-1-25 10:49

rjyq168 发表于 2022-1-25 08:57
双击运行后闪了一下就没了

win+R 打开“运行”,输入cmd,打开命令行
把脚本和视频复制到命令行显示的路径下
命令行输入python <脚本文件名>.py
看看显示了什么

nishiwnagbaji1 发表于 2022-1-25 08:42

市面上好像没有一种关于视频的声音备份 以及字幕备份   以前试着做一个ts先合并 在提取字幕以及音频然后导入新的视频添加音频及字幕

xjjlxcb123 发表于 2022-1-25 07:08

正在找相关软件就来了,谢谢1

李杨 发表于 2022-1-25 07:11

好东西 谢谢楼主分享

周留伟 发表于 2022-1-25 07:45

看着不错,先试试效果,感谢分享

夕阳枫 发表于 2022-1-25 08:06


好软件,谢谢楼主分享。

5552692 发表于 2022-1-25 08:21

谢谢分享,收藏一个要是能全自动就好了

rjyq168 发表于 2022-1-25 08:57

双击运行后闪了一下就没了

slbcmgn 发表于 2022-1-25 08:58

很不错的工具撒

你是我的人 发表于 2022-1-25 09:17

感谢分享
页: [1] 2
查看完整版本: [win/py]合并视频小工具