文章目录

  • 配置
  • 说明:
  • 一、使用danmaku2ass 将xml字幕转换成ass字幕
    • 项目地址(记得给人家点个赞,我已经默默的点过了):
    • 使用步骤:
      • 1、将项目下载下来,
      • 2、保留danmaku2ass.py文件(这个是主要的)
      • 3、使用you-get下载一个B站视频
      • 4、开始转换字幕
      • 5、使用播放器打开视频就会出现字幕了
        • 注意事项:
      • 6、测试一下没有字幕文件的视频
  • 二、ffmpeg将ass字幕合并成含有字幕的视频
    • 0、来源
    • 1、ffmpeg不会安装的参考我之前的博客:
    • 2、ffmpeg一条命令合成字幕视频
    • 3、将合成的视频单独复制到一个文件夹,看看是否含有字幕:
  • 到此结束,又get到一个技能
  • 三、将danmaku2ass.py文件打包成exe(后来补充)
    • 1、灵感来源
    • 2、看看you-get在哪里
    • 3、打包开始:
      • 1、不会打包参考:
      • 2、直接打包命令:
    • 4、将打包之后的danmaku2ass.exe复制到和you-get一样的目录下
    • 5、测试是否成功
    • 6、下载视频和字幕(前面有命令,我不解释了)
    • 7、更改名字
    • 8、打包命令:

配置

window10系统
python3.6

说明:

今天看到一个很好的GitHub,使用python将xml字幕合并成功ass字幕,如标题所说,注意完成俩件事:

  1. 使用danmaku2ass 将xml字幕转换成ass字幕
  2. ffmpeg将ass字幕合并成含有字幕的视频

一、使用danmaku2ass 将xml字幕转换成ass字幕

项目地址(记得给人家点个赞,我已经默默的点过了):

https://github.com/m13253/danmaku2ass

使用步骤:

1、将项目下载下来,

2、保留danmaku2ass.py文件(这个是主要的)

解压之后,只需要保留py文件,其他用不到,不过人家写的使用方法还是可以去读读,如果只想转下字幕,不读也可以,因为我已经花时间读过了,会用就行了。

3、使用you-get下载一个B站视频

如果不会使用you-get,可以看我之前的一个博客,如果看完会了可以给我点个赞哈,看不会找我算账(留言)
https://blog.csdn.net/weixin_42081389/article/details/87101229

测试视频推荐下载这个(也是我随便找的,字幕比较多,视频还不大,嘻嘻),你也可以随便下载一个含有字幕的,为了测试省时间,我没有下载项目推荐的哪一个太大的。
https://www.bilibili.com/video/av5075910

4、开始转换字幕

默认你会python呀,不会自己去B站或者其他网上学习吧。
记得先把字幕文件xml和视频名字改一下,因为cmd下中文影响,我这边改为001了:

python .\danmaku2ass.py -o  .\001.ass  -s 1920x1080 -fn "MS PGothic" -fs 48 -a 0.8 -dm 10 -ds5 .\001.xml

解释下命令:

项目原命令使用解释如图:

我的中文解释(根据自己需要,不够看项目吧)

  1. python .\danmaku2ass.py 这个不用将都懂了
  2. -o :后面是转换ass成功之后的报存地址和名称
  3. -s :像素这个我直接按项目的,没有改
  4. -fn : 指定的字体
  5. -a : 文本不透明度
  6. -fs :字体大小
  7. -dm :滚动字幕的时间(我的理解是出现在屏幕上的时间,默认是5秒,弄成之后,感觉太快了,后来就设置10秒)
  8. -ds :静态字幕的时间(默认5秒)
  9. 后面最后根据就是需要转换的xml字幕。

5、使用播放器打开视频就会出现字幕了

注意事项:

  1. 视频和字幕名称要一样
  2. 视频和字幕要在一个目录下面

效果图:

6、测试一下没有字幕文件的视频

新建一个文件夹,只复制视频过来。

二、ffmpeg将ass字幕合并成含有字幕的视频

0、来源

这个合成是我看到项目里面的一句话,就想着以前没有弄个,尝试一下。

1、ffmpeg不会安装的参考我之前的博客:

https://blog.csdn.net/weixin_42081389/article/details/90172120

2、ffmpeg一条命令合成字幕视频

这个就简单了,一条命令搞定:

 ffmpeg -i .\001.flv -vf ass=001.ass -vcodec libx264 -acodec copy foo-with-danmaku.flv

命令解释:

  1. -i 后面跟的是视频文件
  2. -vf 后面跟单是字幕文件(-vf ass=字幕名字)
  3. -acodec copy 后面跟的就是后面合成之后的名字,可以自己更改
  4. -vcodec libx264 这个好像是视频的一种编码,我不太了解,反正不用更改。

3、将合成的视频单独复制到一个文件夹,看看是否含有字幕:

有图有真相,看图就懂了,基本上我截图都在一个位置,

到此结束,又get到一个技能

三、将danmaku2ass.py文件打包成exe(后来补充)

1、灵感来源

这个测试灵感是因为我想到you-get 可以直接使用,想着danmaku2ass.py文件是不是可以像you-get一样,不用前面的pytho,也能一样,然后开始测试寻找方法了。

2、看看you-get在哪里

3、打包开始:

1、不会打包参考:

如果不会打包的,参考我的另一个之前博客:
https://blog.csdn.net/weixin_42081389/article/details/94899316

2、直接打包命令:

pyinstaller -F .\danmaku2ass.py -i .\cbb7t-eo59j-001.ico

生成如图:


dist目录下面就是我们生成的exe

4、将打包之后的danmaku2ass.exe复制到和you-get一样的目录下

5、测试是否成功

进入cmd,然后命令:

  1. danmaku2ass :看看是否出现参数说明
  2. where danmaku2ass :是否出现位置

6、下载视频和字幕(前面有命令,我不解释了)

7、更改名字

8、打包命令:

是不是已经达到和you-get命令一样的效果了,嘿嘿


直接点开视频看看效果是不是一样,哈哈,果然一样。
截图给你看看

后面合成测试我就没有必要再弄了,至此打包使用结束了,觉得不错点个赞再走吧

python使用danmaku2ass 将xml字幕转换成ass字幕+ffmpeg将ass字幕合并成含有字幕的视频相关推荐

  1. Python 将字符串转换成单个字符;将单个字符合并成字符串

    # 将字符串转换成单个字符: s = "kkjjasd" # 1 for i in s:print(i)# 2 k = list(s) print(k)# 3 g = set(s) ...

  2. 教你1个转换小技巧,免费多张jpg合并成pdf

    工作中我们为了多张图片方便查看,一般会将其合并成一个pdf,今天小编和大家分享一个快速处理的方法,每天都可以免费转换,无需下载软件,打开搜索引擎,直接输入软件名称搜索,马上就可以进入网站的首页,界面简 ...

  3. 怎么把好几行弄成一行_将多行内容合并成一行的两种方式

    在利用Unix操作系统在实现一些具体应用的时候,可能需要把某些显示的结果进行行与行之间的合并.如现在需要用Unix操作系统设计一个彩票软件,每一张彩票上最多可以打印五注内容.在Unix操作系统的数据文 ...

  4. 多个ai文件合并成pdf_【多个ai文件合并成pdf】作文写作问答 - 归教作文网

    怎么将多个AI PDF文件合成一个pdf文档 1.鼠标双击打开转换器,进入到转换器界面内后.鼠标点击左侧各项功能选项中的PDF的其他操作选项.接着再点击下方出现的PDF合并选项. 2.然后就需要把合并 ...

  5. 使用pyhton将文件夹内多个excel表格合并成总表

    前言: 本文讲述使用python将需要处理的文件夹内多个excel文件内容进行合并,并输出为xlsx格式的总表.就比如一个文件夹里又有许多子文件夹,这些子文件夹里分布有excel文件,这里的pytho ...

  6. git 几个commit点合并成一个commit点

    在用git做版本控制器的时候,经常会遇到以下情况: 1.在做1个功能的时候,你自己觉得代码没问题了,就本地commit,然后提交代码,在gitlab上发起和并请求,老大看完之后,觉得你还有修改的地方, ...

  7. python矩阵变成图片_Python图片转换成矩阵,矩阵数据转换成图片

    # coding=gbk from PIL import Image import numpy as np # import scipy def loadImage(): # 读取图片 im = Im ...

  8. Python 将json字幕转换歌词lrc格式

    B站支持json字幕,但下载音乐视频下来之后,转换为音频,没有字幕,很不爽,索性直接写一段Python代码将json格式的字幕转换成lrc 代码如下: # -*- coding:utf-8 -*-im ...

  9. php处理微信返回xml数据,php将微信返回的xml格式转换成数组

    废话不多说直接上代码 代码<?php header("Content-type: text/html; charset=utf-8"); date_default_timez ...

最新文章

  1. KDTable的列绑定F7控件方法
  2. MySQL导出表结构相关字段以及把字段由下划线转驼峰命名
  3. 三行情书代码_用三行代码优化您的交易策略
  4. 阻止页面双击选中文本
  5. Elastic Jeff Yoshimura:开源正在开启新一轮的创新 | 人物志
  6. MATLAB函数随笔之计算篇
  7. 遇见不在洛谷收藏里的好题(并没有做)
  8. nginx上传目录配置,禁止执行权限
  9. 2012智能管道技术创新与应用实践论…
  10. wordpress 如何移除管理后台仪表盘小工具
  11. c语言贪吃蛇(简易版本含完整代码)
  12. html和css实现导航条
  13. 团队作业九---项目验收与总结
  14. 02-----音频通道数、采样频率、采样位数、采样个数(样本数)的概念及计算一帧音频的大小、每秒播放的音频字节大小、一帧的播放时长、音频重采样
  15. iphone的照片如何同步到mac
  16. mame 游戏铁钩船长/拳皇97 支持多手柄,电视遥控器~~
  17. java反序加密_对java程序加密防止反编译
  18. ESP32基础应用之使用两个ESP32通过阿里云物联网平台实现相互通信
  19. 西门子dcs系统组态手册下载_不懂PLC,SCADA,也能通俗易懂的了解DCS(分布式控制系统)...
  20. Mybatis错误 Result Maps collection already contains value for xxx

热门文章

  1. 悟空crm11.0 for php安装简要教程
  2. 题解报告——窗口的星星
  3. 云服务器子系统,Linux子系统使用云服务器
  4. 文案策划零基础该如何去做
  5. 互联网代驾行业的发展及市场前景
  6. 简单的makefile文件编写
  7. GPE监控预警系统-Prometheus 概述.md
  8. VUE打包图片加载失败问题
  9. aiohttp mysql_aiohttp封装的爬虫小框架
  10. 修改mysql注册表在_mysql服务如何修改注册表