├── README.md ├── b站投稿.md ├── ffmpeg.md ├── mac.md ├── picture ├── 123456.png ├── Barn-yuv.png ├── Interlace_zoom.gif ├── Snipaste_2021-08-24_21-58-45.png ├── Snipaste_2021-08-25_11-52-56.png ├── Snipaste_2021-08-25_11-54-18.png ├── Snipaste_2021-08-27_14-45-37.png ├── Snipaste_2021-08-27_14-48-12.png ├── Snipaste_2021-08-27_14-52-23.png ├── Snipaste_2021-08-27_14-54-53.png ├── Snipaste_2021-08-27_15-00-00.png ├── Snipaste_2021-08-27_15-13-25.png ├── Snipaste_2021-08-27_15-20-20.png ├── Snipaste_2021-08-27_15-25-58.png ├── Snipaste_2021-08-27_15-29-49.png ├── Snipaste_2021-08-27_15-38-23.png ├── Snipaste_2021-08-27_15-41-41.png ├── Snipaste_2021-08-27_16-13-58.png ├── Snipaste_2021-08-27_16-14-47.png ├── Snipaste_2021-08-27_16-16-22.png ├── Snipaste_2021-08-27_16-23-12.png ├── Snipaste_2021-08-27_16-37-52.png ├── Snipaste_2021-08-27_16-44-48.png ├── Snipaste_2021-08-27_16-46-15.png ├── Snipaste_2021-08-27_19-25-00.png ├── Snipaste_2021-08-29_19-40-51.png ├── Snipaste_2021-08-29_19-42-09.png ├── Snipaste_2021-08-29_19-44-19.png ├── Snipaste_2021-08-29_19-46-16.png ├── Snipaste_2021-08-29_22-50-56.png ├── Snipaste_2021-08-29_22-51-33.png ├── Snipaste_2021-08-29_22-53-05.png ├── Snipaste_2021-08-29_22-53-26.png ├── Snipaste_2021-08-29_22-53-58.png ├── Snipaste_2021-08-30_10-09-33.png ├── Snipaste_2021-08-30_10-10-42.png ├── Snipaste_2021-08-31_12-30-18.png ├── Snipaste_2021-08-31_12-56-39.png ├── Snipaste_2021-08-31_14-11-31.png ├── Snipaste_2021-08-31_14-13-17.png ├── Snipaste_2021-08-31_14-14-09.png ├── Snipaste_2021-08-31_14-14-41.png ├── Snipaste_2021-08-31_14-16-53.png ├── Snipaste_2021-08-31_16-33-48.png ├── Snipaste_2021-09-03_14-00-35.png ├── Snipaste_2021-09-03_14-01-37.png ├── Snipaste_2021-09-03_14-01-54.png ├── Snipaste_2021-09-03_20-49-33.png ├── Snipaste_2021-09-03_20-56-34.png ├── Snipaste_2021-09-03_20-56-50.png ├── Snipaste_2021-09-03_21-13-49.png ├── Snipaste_2021-09-03_23-03-42.png ├── Snipaste_2021-09-03_23-06-10.png ├── Snipaste_2021-09-04_17-25-46.png ├── Snipaste_2021-09-04_18-19-02.png ├── Snipaste_2021-09-05_09-51-52.png ├── Snipaste_2021-09-05_09-54-16.png ├── Snipaste_2021-09-05_15-05-20.png ├── Snipaste_2021-09-05_15-07-37.png ├── Snipaste_2021-09-05_15-08-48.png ├── Snipaste_2021-09-05_15-34-16.png ├── Snipaste_2021-09-05_16-03-12.png ├── Snipaste_2021-09-05_16-18-25.png ├── Snipaste_2021-09-05_16-41-36.png ├── Snipaste_2021-09-05_16-42-50.png ├── Snipaste_2021-09-05_17-19-23.png ├── Snipaste_2021-09-05_17-33-47.png ├── Snipaste_2021-09-05_18-20-03.png ├── Snipaste_2021-09-05_18-31-29.png ├── Snipaste_2021-09-05_18-43-22.png ├── Snipaste_2021-09-05_18-47-37.png ├── Snipaste_2021-09-05_18-57-36.png ├── Snipaste_2021-09-05_18-59-59.png ├── Snipaste_2021-09-05_19-25-28.png ├── Snipaste_2021-09-05_19-27-29.png ├── Snipaste_2021-09-05_19-29-22.png ├── Snipaste_2021-09-05_19-30-19.png ├── Snipaste_2021-09-05_19-32-15.png ├── Snipaste_2021-09-05_19-34-47.png ├── Snipaste_2021-09-05_19-38-04.png ├── Snipaste_2021-09-05_19-41-46.png ├── Snipaste_2021-09-05_19-54-10.png ├── Snipaste_2021-09-05_19-56-23.png ├── Snipaste_2021-09-05_19-58-43.png ├── Snipaste_2021-09-05_19-59-59.png ├── Snipaste_2021-09-05_20-03-57.png ├── Snipaste_2021-09-05_20-09-15.png ├── Snipaste_2021-09-05_20-10-27.png ├── Snipaste_2021-09-05_20-12-53.png ├── Snipaste_2021-09-05_21-49-01.png ├── Snipaste_2021-09-05_22-12-15.png ├── Snipaste_2021-09-05_22-14-30.png ├── Snipaste_2021-09-05_22-14-52.png ├── Snipaste_2021-09-05_22-15-25.png ├── Snipaste_2021-09-05_22-20-09.png ├── Snipaste_2021-09-05_22-25-55.png ├── Snipaste_2021-09-06_10-27-49.png ├── Snipaste_2021-09-06_10-38-29.png ├── Snipaste_2021-09-06_11-15-15.png ├── Snipaste_2021-09-06_14-44-52.png ├── Snipaste_2021-09-06_15-16-10.png ├── Snipaste_2021-09-06_22-25-09.png ├── Snipaste_2021-09-06_22-29-30.png ├── Snipaste_2021-09-06_22-32-09.png ├── Snipaste_2021-09-06_22-32-26.png ├── Snipaste_2021-09-08_18-08-04.png ├── Snipaste_2021-09-09_21-32-30.png ├── Snipaste_2021-09-09_22-47-31.png ├── Snipaste_2021-09-09_22-48-05.png ├── Snipaste_2021-09-09_23-02-43.png ├── Snipaste_2021-09-09_23-06-13.png ├── Snipaste_2021-09-12_16-36-10.png ├── Snipaste_2021-09-30_15-35-32.png ├── Snipaste_2021-09-30_15-36-01.png ├── Snipaste_2021-09-30_15-36-48.png ├── Snipaste_2021-09-30_15-52-27.png ├── Snipaste_2021-09-30_15-58-12.png ├── Snipaste_2021-09-30_16-12-13.png ├── Snipaste_2021-10-21_11-13-46.png ├── Snipaste_2021-10-21_11-14-30.png ├── Snipaste_2021-10-21_11-21-36.png ├── Snipaste_2021-10-21_12-14-09.png ├── Snipaste_2022-02-20_12-50-03.png ├── Snipaste_2022-02-20_14-10-29.png ├── Snipaste_2022-02-21_12-21-36.png ├── Snipaste_2022-03-09_10-14-21.png ├── Snipaste_2022-03-09_10-55-22.png ├── Snipaste_2022-03-09_10-57-08.png ├── Snipaste_2022-03-09_10-58-56.png ├── Snipaste_2022-03-09_10-59-42.png ├── Snipaste_2022-03-09_11-02-45.png ├── Snipaste_2022-05-02_22-52-29.png ├── ab3cq-t8spz.jpg ├── asoul.svg ├── encoding_time.png ├── 动态更正的团色.jpg ├── 在qa中偷偷改了错误的团色.png ├── 屏幕截图 2021-10-21 111045.png ├── 弹幕参数.png └── 第一次qa提到的团色.png ├── 字幕打轴.md ├── 录播.md ├── 拓展阅读.md ├── 日语注音卡拉ok字幕.md ├── 杂篇.md ├── 直播素材获取.md ├── 软件和网站合集.md └── 音视频知识.md /README.md: -------------------------------------------------------------------------------- 1 | A-SOUL录播,打轴,压制,投稿方法,请务必认真看完[介绍](#介绍) 2 | 3 | 全篇约1w5字,有图片,资料是自己收集的,感谢几位au私信评论区提供建议,用Typora写的markdown格式,有github版与gitee版,github与gitee同用户名同仓库名,可下载离线看,也可以在网页看(推荐)。Typora不能从一个文件传送到另外一个文件的某一个标题,gitee版在线观看效果最好,有大纲 4 | 5 | 方法包括b站和抖音录播,快速无损二刀流剪辑,提取直播唱的歌曲为mp3,aac/m4a格式,在直播过程中快速切出有歌词(中文,中日,中英等)的歌曲切片,简单的打轴和添加淡入淡出特效,弹幕压制,投稿等 6 | 7 | 有错误、问题、建议和补充欢迎评论区提出或者[b站私信我](https://space.bilibili.com/200257325/) 8 | 9 | 前后写了很长时间,到百度、谷歌、CSDN、维基百科、百度贴吧、b站、软件官网等网站找了很多资料,终于完结了,后续应该没有什么可以更新的了 10 | 11 | #### 20240325更新 12 | 13 | 增加了自动生成带k轴的日语注音卡拉ok字幕的方法 14 | 15 | #### 20221110更新 16 | 17 | 发现了两个很有意思的软件 18 | 19 | https://www.bilibili.com/video/BV11N411Q73v/ 20 | 21 | https://github.com/MC-dusk/QRCD_M 22 | 23 | #### 20221020更新 24 | 25 | https://www.bilibili.com/video/BV1Ge411V7XV 26 | 27 | #### 20220523更新 28 | 29 | 流程在不断优化,一些方法已经过时,gui在学了 30 | 31 | srt歌词下载暂时用这个 32 | 33 | https://github.com/djj45/srtlyric/releases 34 | 35 | #### 强烈推荐使用的软件 36 | 37 | 无损剪辑losslesscut,关键帧粗剪,不到3秒导出 38 | 39 | https://github.djj45.workers.dev/mifi/lossless-cut/releases 40 | 41 | #### 介绍 42 | 43 | [用到的软件和网站](./软件和网站合集.md) 44 | 45 | **视频教程(视频缓慢更新中,补充了一些文章里面没有提到的技巧,建议观看)** 46 | 47 | https://www.bilibili.com/video/BV1mY4y1i7Ac 48 | 49 | 本文适合切片员和录播员,教你怎样录播切片加字幕投稿b站。这套方法入门可能需要不少时间,但是我保证绝对是视频成品质量最高,产出速度最快的方法。本文提到的所有软件都是免费、全平台的,除了剪映之外都是开源的。适用Windows与Mac(M1需要自行编译),原本所有程序的安装方法是Windows上的,现在增加了[在Mac上的使用方法](./mac.md)。可能会用到python,我写了[安装python的方法](./杂篇.md#python) 50 | 51 | 有疑问和建议欢迎私信,解决问题最快的办法就是私信我,有问必答: 52 | 53 | https://space.bilibili.com/200257325 54 | 55 | 不建议使用的软件: 56 | 57 | - 剪映,使用剪映识别字幕再用提取工具提取出来可以,把剪映用作字幕生成工具是没有问题的,但是剪映导出视频不能自定义音频码率,asoul的录播音频码率是320k,剪映只能导出128k的音频,音质效果不好 58 | - arctime,arctime收费,没有必要付费,而且不付费功能不多,建议用开源免费的Aegisub 59 | - 达芬奇windows版,导出aac格式的音频只能是128k,同剪映,mac版可以导出320k 60 | 61 | 在线流程图: 62 | 63 | 64 | 65 | [离线流程图](./picture/asoul.svg) 66 | 67 | 新人快速入门: 68 | 69 | [直播素材获取](./直播素材获取.md)+[字幕打轴](./字幕打轴.md)+[ffmpeg](./ffmpeg.md)+[b站投稿](./b站投稿.md) 70 | 71 | - 用[分段下载工具](./直播素材获取.md#原画录播片段下载)下载自己想要切的片段 72 | - 杂谈加字幕切片 73 | - 用[剪映专业版](https://lv.ulikecam.com/)语音识别生成字幕,再用[提取工具](./字幕打轴.md#自动生成字幕)提取出来,格式为srt 74 | - [下载安装自己喜欢的字体](./字幕打轴.md#字体),把srt格式的字幕导入[Aegisub](./字幕打轴.md#下载),[换成自己喜欢的字体样式](./字幕打轴.md#设置字幕样式),字幕导出为ass格式 75 | - 歌曲加字幕切片 76 | - [下载带有时间轴的srt字幕文件](./字幕打轴.md#LRC歌词)导入Aegisub,换成自己喜欢的字体样式,对准第一句的时间即可,字幕导出为ass格式 77 | - [下载ffmpeg](./ffmpeg.md#ffmpeg下载及配置)并[配置环境变量](./ffmpeg.md#配置环境变量),用[字幕压制命令](./ffmpeg.md#字幕压制)压制 78 | - [核对视频](./ffmpeg.md#ffprobe的使用)后[投稿b站](./b站投稿.md) 79 | 80 | 如果想快速切片,必须自己[录播](./录播.md) 81 | 82 | > Q:为什么用ffmpeg 83 | > 84 | > A:剪辑加字幕加弹幕当然可以用pr、达芬奇、剪映等软件,有图形界面,操作更简单,视频文章教程很多。但是我找不到系统介绍ffmpeg常用命令与原理的教程,所以查了很多资料自己总结了一份。ffmpeg跨平台,所有平台的命令都是一样的。ffmpeg对二刀流的视频进行加字幕、加弹幕、压制等处理非常高效,占用系统资源很小,非常适合用在Linux服务器上。ffmpeg命令接近音视频的原理,不同格式之间的转换非常简单快速,无损剪辑、视频无损转换、视频提取音频等功能其他软件难以替代。ffmpeg还可以录播,配合[抓流脚本](https://github.djj45.workers.dev/wbt5/real-url)可以录制很多平台的直播。ffmpeg处理多音轨多字幕的mkv格式电影很方便,不同语言的音轨和字幕提取出来,无损组成想要的电影。 85 | 86 | #### [音视频知识](./音视频知识.md) 87 | 88 | ffmpeg的基础,重点是封装格式,音视频格式,码率 89 | 90 | #### [录播](./录播.md) 91 | 92 | 用b站录播姬或者blrec录播录弹幕 93 | 94 | #### [直播素材获取](./直播素材获取.md) 95 | 96 | 网盘版的源码率录播与油猴插件下载b站视频,A-SOUL音乐素材获取,au制作的对二创有帮助网站,A-SOUL录音棚 97 | 98 | #### [字幕打轴](./字幕打轴.md) 99 | 100 | Aegisub的使用,找歌词,选字体 101 | 102 | #### [FFmpeg](./ffmpeg.md) 103 | 104 | 压制转码,ffprobe,ffmpeg的使用,cmd命令行技巧 105 | 106 | #### [Mac](./mac.md) 107 | 108 | Mac用的人相对少,在Mac上录播和切片的教程估计没有,我虽然没用过mac,但是好在本文使用的软件都是开源的,在Mac上也可以使用 109 | 110 | #### [b站投稿](./b站投稿.md) 111 | 112 | 转载与自制的区别,如何分区,加tag,分p 113 | 114 | #### [杂篇](./杂篇.md) 115 | 116 | PotPlayer配置,小丸工具箱下载和简单使用,dd烤肉机介绍,图片超分辨率,pr&ae教程,python的安装 117 | 118 | #### [拓展阅读](./拓展阅读.md) 119 | 120 | 我写文章的时候参考的一些资料和知识拓展 121 | -------------------------------------------------------------------------------- /b站投稿.md: -------------------------------------------------------------------------------- 1 | - [投稿方式](#投稿方式) 2 | - [转载与自制](#转载与自制) 3 | - [分p](#分p) 4 | - [分区和标签](#分区和标签) 5 | 6 | 大概从2021年11月底开始,b站投稿占用b站储存空间过多的UP主(如录播UP主)陆续被b站限制投稿的视频码率,目前仅仅是对事实的合理推测,证据:https://www.douban.com/group/topic/260834742 7 | 8 | ### 投稿方式 9 | 10 | [网页投稿](https://member.bilibili.com/platform/upload/video/frame) 11 | 12 | [b站投稿工具投稿](#分p)(可以分p,投稿互动视频) 13 | 14 | ### 转载与自制 15 | 16 | 转载是没有收益的,在开通了创作激励后,自制才有收益。查看某一个视频是自制还是转载的方法是自制视频可以投两个币,转载视频只能投一个币。如果视频简介处有`未经作者授权,禁止转载`这几个字,一定是自制,没有就不一定 17 | 18 | b站官方给出的转载与自制区别 19 | 20 | 21 | 22 | 录播和带弹幕的录播属于转载,歌曲加字幕属于转载,二刀流剪辑属于转载,倒放属于转载,特效剪辑属于自制,配音属于自制。杂谈回游戏回加字幕严格意义上来说属于转载,投自制也可以。关于转载与自制,我的理解是看视频的主体是什么,比如一个MAD/AMV,即使是纯片段的截取,但是创作者加入了自己的理解,属于自制 23 | 24 | 点击[投稿页面](https://member.bilibili.com/platform/home)的人工客服了解更多 25 | 26 | 27 | 28 | ### 分p 29 | 30 | 下载b站投稿工具可以分p,投稿互动视频。我用b站投稿工具上传视频比网页版上传慢,不知道是不是我自己的问题 31 | 32 | 33 | 34 | ### 分区和标签 35 | 36 | 分区是动画综合,标签参考其他切片,听说打上asoul标签会被限流。 37 | -------------------------------------------------------------------------------- /ffmpeg.md: -------------------------------------------------------------------------------- 1 | - [ffmpeg下载及配置](#ffmpeg下载及配置) 2 | - [ffmpeg下载](#ffmpeg下载) 3 | - [配置环境变量](#配置环境变量) 4 | - [在某一目录下使用ffmpeg](#在某一目录下使用ffmpeg) 5 | - [cmd输入的小技巧](#cmd输入的小技巧) 6 | - [执行命令](#执行命令) 7 | - [Tab键补全文件名](#Tab键补全文件名) 8 | - [复制粘贴](#复制粘贴) 9 | - [快速运行历史命令](#快速运行历史命令) 10 | - [清屏](#清屏) 11 | - [输入习惯](#输入习惯) 12 | - [ffprobe的使用](#ffprobe的使用) 13 | - [-map的使用](#-map的使用) 14 | - [查看关键帧位置](#查看关键帧位置) 15 | - [ffmpeg命令(不转码)](#ffmpeg命令(不转码)) 16 | - [停止命令](#停止命令) 17 | - [转封装](#转封装) 18 | - [视频提取音频](#视频提取音频) 19 | - [视频去掉音频](#视频去掉音频) 20 | - [视频剪辑](#视频剪辑) 21 | - [音频剪辑](#音频剪辑) 22 | - [更换音频](#更换音频) 23 | - [拼接视频](#拼接视频) 24 | - [MP4封装与提取SRT字幕](#MP4封装与提取SRT字幕) 25 | - [多音轨与多字幕电影的处理](#多音轨与多字幕电影的处理) 26 | - [FLAC转WAV](#FLAC转WAV) 27 | - [视频循环增加时长](#视频循环增加时长) 28 | - [ffmpeg命令(转码/压制)](#ffmpeg命令(转码/压制)) 29 | - [什么是转码](#什么是转码) 30 | - [一些参数和模式的含义](#一些参数和模式的含义) 31 | - [preset](#preset) 32 | - [crf](#crf) 33 | - [abr](#abr) 34 | - [2pass](#2pass) 35 | - [模式的选择](#模式的选择) 36 | - [压制实例分析](#压制实例分析) 37 | - [字幕压制](#字幕压制) 38 | - [ffmpeg压制](#ffmpeg压制) 39 | - [pr插件](#pr插件) 40 | - [弹幕压制](#弹幕压制) 41 | - [截取录播与弹幕](#截取录播与弹幕) 42 | - [裁剪画面](#裁剪画面) 43 | - [视频转GIF](#视频转GIF) 44 | - [改变分辨率](#改变分辨率) 45 | - [倒放](#倒放) 46 | - [一图流](#一图流) 47 | - [硬件加速](#硬件加速) 48 | 49 | ### ffmpeg下载及配置 50 | 51 | #### ffmpeg下载 52 | 53 | [ffmpeg5.0代理下载直链(推荐)](https://ghproxy.com/https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2022-12-05-12-37/ffmpeg-n5.1.2-8-g5746987bad-win64-gpl-5.1.zip) 54 | 55 | [ffmpeg官网下载](https://ffmpeg.org/download.html) 56 | 57 | 58 | 59 | 鼠标移动到Windows图标,点击上面这个。其实下面这个也行,区别就是不同的人用同一种源码编译的 60 | 61 | 往下拉,下载这个,下载后解压 62 | 63 | 64 | 65 | #### 配置环境变量 66 | 67 | 配置环境变量是为了在任何地方调用ffmpeg 68 | 69 | 把解压后的文件夹移动到一个不会被误删的地方,如c盘 70 | 71 | 72 | 73 | 打开解压后的文件夹,进入bin文件夹内,ffmpeg是转封装转码用的,ffplay是一个简易的播放器(播放的默认画质很差),[ffprobe](#ffprobe的使用)是查看音视频详细信息的 74 | 75 | 76 | 77 | 选择bin目录下三个exe文件的任意一个,右键,属性,把位置完整复制下来 78 | 79 | 80 | 81 | 来到桌面,单击此电脑,右键,属性,高级系统设置 82 | 83 | 84 | 85 | 点击环境变量 86 | 87 | 88 | 89 | 双击Path 90 | 91 | 92 | 93 | 点击新建,粘贴路径,一路确定即可 94 | 95 | 96 | 97 | 快捷键Windows+R,输入cmd,回车 98 | 99 | 100 | 101 | 输入命令 102 | 103 | ``` 104 | ffmpeg -version 105 | ``` 106 | 107 | 回车,出现如图所示的画面即配置成功 108 | 109 | 110 | 111 | #### 在某一目录下使用ffmpeg 112 | 113 | 打开音视频所在目录,用鼠标单击箭头所指的地方(鼠标指针在黑线间) 114 | 115 | 116 | 117 | 路径变蓝 118 | 119 | 120 | 121 | 输入cmd,回车 122 | 123 | 124 | 125 | 成功在某一目录下打开cmd窗口。**后面的所有代码都是在需要处理的视频目录下打开cmd窗口为前提** 126 | 127 | 128 | 129 | ### cmd输入的小技巧 130 | 131 | #### 执行命令 132 | 133 | 输入命令后按回车执行 134 | 135 | #### Tab键补全文件名 136 | 137 | 如果目录下有多个文件,输入想转换的文件名时,只需要输入文件名的前面几个字再按键盘上的Tab键即可自动补全。如想输入232555.flv,输入2,因为同一个目录下只有一个2开头的文件,所以按下Tab键自动补全232555.flv。假如目录里有三个2开头的文件21.flv, 22.flv, 23.flv,输入2后按Tab键补全为21.flv ,此时需要再次按Tab键,变为22.flv,再按Tab键,变为23.flv,继续按Tab键,变为21.flv。这种情况多输入几个字,如23,按Tab键补全为23.flv 138 | 139 | **如果复制了一串命令,粘贴到命令行,想把命令开头的input.flv改成其他文件,千万不能按Tab键,一按Tab键自动补全,文件名补全了,但是后面的一串命令没了** 140 | 141 | 142 | 143 | #### 复制粘贴 144 | 145 | 在cmd中按住鼠标左键选中文字,Ctrl+C复制,Ctrl+V粘贴或者鼠标右键点击粘贴。注意,在运行命令的时候(如用ffmpeg转码中)按Ctrl+C强制中断命令(已经转换的部分不会丢失),ffmpeg在执行命令的过程中可以按键盘的q键停止 146 | 147 | #### 快速运行历史命令 148 | 149 | 假如刚才输入了一串很长的命令,如(压制字幕命令) 150 | 151 | ``` 152 | ffmpeg -i input.flv -c:v libx264 -c:a copy -vf subtitles=input.ass -crf 17 -preset 7 output.mp4 153 | ``` 154 | 155 | 处理了一个视频,又想处理同一目录下的另外一个视频,此时不要关闭cmd窗口,按键盘的"↑"键自动输入(不自动执行,需要手动按回车执行)上一条执行过的命令,"↓"键自动输入(不自动执行,需要手动按回车执行)下一条执行过的命令 156 | 157 | #### 清屏 158 | 159 | 输入cls,回车,清屏。历史命令是不会清除的,除非关闭cmd窗口 160 | 161 | #### 输入习惯 162 | 163 | 不需要输入中文的时候,建议用英文键盘输入命令,避免出错,需要用中文再切换输入法。文件名如果有特殊字符,差不多就是除开中文英文数字下划线(_)短杆(-)的字符,建议重命名或者用英文双引号把文件名引起来("文件名") 164 | 165 | ### ffprobe的使用 166 | 167 | 为了转换不会出错,同时更加深刻认识转换的原理,转换之前建议用ffprobe查看一下音视频的信息 168 | 169 | 当然,PotPlayer播放时按Tab键也可以看到音视频信息,把音视频拖动到[小丸工具箱](./杂篇.md#小丸工具箱)的MediaInfo也可以,其他软件也可以看到音视频的信息 170 | 171 | ``` 172 | ffprobe input.flv 173 | ``` 174 | 175 | 第一行分别是视频格式,分辨率,码率,帧率,第二行分别是音频格式,采样率,码率,对这些名词不熟悉建议看[音视频知识](./音视频知识.md) 176 | 177 | 178 | 179 | #### -map的使用 180 | 181 | 上图的视频信息前面有`Stream #0:0`,音频信息前面有`Stream #0:1`,这是ffmpeg给每一个视频内部不同的媒体(视频、音频、字幕)的编号,从0开始,例如 182 | 183 | - 1.mp4 184 | - Stream #0:0 video 185 | - Stream #0:1 audio 186 | - 2.flv 187 | - Stream #0:0 video 188 | - Stream #0:1 audio 189 | - 3.mkv 190 | - Stream #0:0 video 191 | - Stream #0:1 audio 192 | - Stream #0:2 subtitle 193 | 194 | ``` 195 | ffmpeg -i 1.mp4 -i 2.flv -i 3.mkv -map 0:0 -map 1:1 -map 2:2 -c copy output.mkv 196 | ``` 197 | 198 | 上面命令的意思是把mp4里面的视频,flv里面的音频,mkv里面的字幕重新封装成一个新的mkv文件。 199 | 200 | #### 查看关键帧位置 201 | 202 | ``` 203 | ffprobe -hide_banner -select_streams v -skip_frame nokey -show_entries frame=pts_time,pict_type input.mp4 204 | ffprobe -hide_banner -select_streams v -skip_frame nokey -show_entries frame=pts_time,pict_type input.mp4 > output.txt 205 | ``` 206 | 207 | `-hide_banner`是不输出ffprobe版本信息,因为输出的内容有点多且与视频时间长度有关,所以为了输出的内容更少,加上了这个选项。`> output.txt`是重定向输出到当前目录的文件`output.txt`,方便查看 208 | 209 | 输出如下 210 | 211 | ``` 212 | [FRAME] 213 | pts_time=0.048000 214 | pict_type=I 215 | [/FRAME] 216 | [FRAME] 217 | pts_time=4.215000 218 | pict_type=I 219 | [/FRAME] 220 | ... 221 | ``` 222 | 223 | ### ffmpeg命令(不转码) 224 | 225 | ### 如果输入视频格式为FLV且在执行命令过程中出现警告(黄字)或者报错(红字),先转封装为MP4再做 226 | 227 | #### 停止命令 228 | 229 | 在ffmpeg执行命令的过程中,按键盘上的q键可以停止 230 | 231 | #### 转[封装](./音视频知识.md#封装格式) 232 | 233 | 当软件不支持某一种封装格式的时候需要转封装,如flv格式的视频不能直接导入pr、Aegisub等软件。转封装的速度非常快,占用的cpu和硬盘资源较少,几小时的视频几秒就处理完了(具体时间与cpu和硬盘性能有关) 234 | 235 | flv转mp4命令(不同视频封装格式一般可以互相转换,flv与mp4可以替换为其他格式) 236 | 237 | ``` 238 | ffmpeg -i input.flv -c copy output.mp4 239 | ``` 240 | 241 | -i后面接的是需要处理的文件,文件名按照实际替换,-c指的是所有编码器,copy,直接复制,也就是不转码,-c copy的意思是视频、音频、字幕等都不作处理,输出的文件写在最后面,文件名与封装格式按照实际替换。因为是在当前目录打开cmd,所以输入和输出的文件都在同一个目录下,如果想输出到某一个目录,如d盘下的视频文件夹,`output.mp4`变为`D:\视频\output.mp4`(注意切换到英文键盘输入"\\"与":"),同理,输入的文件也可以在任意一个目录,只需带上完整路径即可 242 | 243 | #### 视频提取音频 244 | 245 | 也就是俗称的视频转音频 246 | 247 | ``` 248 | ffmpeg -i input.flv -vn -c:a copy output.m4a 249 | ffmpeg -i input.flv -vn -c:a copy output.aac 250 | ``` 251 | 252 | 两种代码都可以,一般转为m4a。转换之前建议看看视频里[音频的格式](#ffprobe的使用),大多数视频里面的音频格式都是AAC,转m4a与转AAC都没有问题。如果后续要用ffmpeg无损剪辑音频,要转为m4a格式,aac格式没有内含时间戳,ffmpeg根据码率推断时间戳,剪辑出现误差 253 | 254 | -vn表示去掉视频,-c:a是音频编码器,copy,直接复制,-c:a copy就是音频不转码的意思 255 | 256 | 如果某些老旧的设备或者软件兼容性比较差,音频转为mp3格式。如果视频里面的音频本来就是mp3格式,那就不用转码了,直接-c:a copy就行 257 | 258 | ``` 259 | ffmpeg -i input.flv -vn -c:a libmp3lame -ab 320k output.mp3 260 | ``` 261 | 262 | 上面的代码为完整版,下面的代码为简化版,比特率默认是128k,所以想转换成320k码率的mp3一定要设置。mp3的最高码率是320k,常见的码率有128k,192k,320k。转换成什么码率看原来是什么码率左右,一般转成常见码率,如果写成300k,310k的话自动转成320k,有些码率是转换不了的,视频里面的音频的码率一般是在128k,192k,320k上下浮动,不会是一些奇奇怪怪的码率 263 | 264 | -vn表示去掉视频,-c:a是音频编码器,用libmp3lame编码,音频从原来的格式[转码](#什么是转码)变成了mp3格式,-ab后面是比特率 265 | 266 | #### 视频去掉音频 267 | 268 | ``` 269 | ffmpeg -i input.flv -an -c:v copy output.flv 270 | ``` 271 | 272 | -an表示去掉音频,-c:v表示视频编码器,copy,直接复制,-c:v copy表示视频不转码,output.flv可以换成output.mp4,去掉音频与转封装结合 273 | 274 | #### 视频剪辑 275 | 276 | 如果想在任意地方剪断视频,建议使用smmv 277 | 278 | https://www.xx7z.com/archives/2088 279 | 280 | ffmpeg可以粗剪视频(在关键帧处剪断,可能有几秒误差),速度很快,无损剪辑 281 | 282 | 注意,flv格式的视频要先无损转换为mp4格式再剪辑,否则视频画面有时会卡住几秒 283 | 284 | ``` 285 | ffmpeg -i input.flv -c copy output.mp4 286 | ``` 287 | 288 | ``` 289 | ffmpeg -ss 00:10:05 -to 00:10:15 -i input.mp4 -c copy -avoid_negative_ts 1 output.mp4 290 | ffmpeg -ss 00:10:05 -t 10 -i input.mp4 -c copy -avoid_negative_ts 1 output.mp4 291 | ``` 292 | 293 | 两种代码效果一样,都是剪10秒的视频,-ss后面是开始时间,-to后面是结束时间,-t后面是往后剪的秒数,-c copy是音视频都不转码,-avoid_negative_ts 1字面意思是避免错误的时间戳(avoid negative time stamp),1是不避免,不加这一句的话有时剪出来前面有几秒有画面没有声音,`00:10:05`这种形式也可以用秒即`605`来表示,ffmpeg是支持多位小数的,见下面的命令 294 | 295 | ffmpeg会剪到关键帧上,如果视频的关键帧每5秒一个,开始时间与结束时间刚好在两个关键帧的中间,-ss,-to,-t在-i前面,没有剪到关键帧的话ffmpeg会剪到最近的前面一个关键帧,导致开始时间和结束时间都早了2.5秒。如果视频每秒1个关键帧,剪出来的视频可以精确到秒 296 | 297 | 什么是关键帧呢,输入命令 298 | 299 | ``` 300 | ffprobe -hide_banner -select_streams v -show_entries frame=pict_type input.mp4 301 | ffprobe -hide_banner -select_streams v -show_entries frame=pict_type input.mp4 > output.txt 302 | ``` 303 | 304 | `> output.txt`是重定向输出到当前目录的文件`output.txt`,方便查看 305 | 306 | 第一条命令会输出一大堆东西,马上`Ctrl+C`打断输出即可,找到一个I帧,即关键帧,往下看发现帧是按照IBBPBBP...I排列的,这是视频编码格式规定的。为什么要这样规定呢,答案是为了节省储存空间,I帧记录是完整的画面,而BP帧记录的是在很短的时间里面的变化画面,不变的画面信息是不会记录的,播放器的进度条可以设置仅定位到关键帧(指的是离线视频而不是在线视频),因为这样加载快,如果播放器可以拖到非关键帧的位置,那么必须要解码前面一个关键帧才能获取完整的图像,加载比较慢,不过以现在的电脑性能来说,几乎感觉不到很大的差异了。因为I帧记录的是完整的画面,所以在I帧处剪断是无损的,否则必须重新编码,如pr是有损剪辑。有关更多IBP帧的知识可以看[这篇文章](https://www.cnblogs.com/yongdaimi/p/10676309.html) 307 | 308 | 关键帧的具体位置到底在哪里呢,可以通过ffprobe[查看关键帧位置](#查看关键帧位置),然后就可以在确定的关键帧处剪开了 309 | 310 | ``` 311 | ffmpeg -ss 0.048 -to 12.548 -i input.mp4 -c copy -avoid_negative_ts 1 output.mp4 312 | ``` 313 | 314 | 但是这样做毕竟太麻烦了,而且剪辑时候的画面要用播放器打开,看一下大概时间点在哪里,然后记录下时间。[有一款基于ffmpeg的可视化剪辑软件](https://github.com/mifi/lossless-cut/releases),这个软件一个很棒的特点是不像pr之类的软件把10G左右的录播导入进去很慢而且占用大量内存导致电脑卡顿,非常适合内存小的电脑。虽然这个软件也可以从除了关键帧之外的任意帧开始切割,但是建议不要用,因为导出的视频可能会有一段空白(该软件的说明,我实际测试也是这样,但是用ffmpeg命令行是没有问题的,原因未知)。无损切割是ffmpeg做得到pr做不到的事情,非无损切割请尽量用pr 315 | 316 | 如果非要不在关键帧的地方剪辑,不惜损失质量,也不是不可以 317 | 318 | ``` 319 | ffmpeg -ss 1.5 -t 10 -i input.mp4 -c:v libx264 -c:a copy -crf 17 -preset 7 output.mp4 320 | ``` 321 | 322 | 要注意的是,这样剪的时长最好大于一个关键帧,时长太短输出错误。而且音频往往对不上,因为音频没有转码,ffmpeg寻找时间点是根据关键帧的位置找的,音频不在关键帧里面的一部分不包括进去,要想解决这个问题,要单独抽出音频轨道(如果音频格式是aac抽取一定要输出为m4a格式,aac格式不包含时间轴,ffmpeg根据码率推出具体时间,剪辑的时间往往对不上),单独对音频剪辑 323 | 324 | 如果非要小数,建议留一位小数即可,用ffmpeg剪辑我感觉这个精度已经够高了 325 | 326 | 但是上面这条命令整段都转码了,慢而且质量下降 327 | 328 | 那可不可以转码一小段,然后和后面的一大段无损剪辑的合并在一起呢,答案是不可以。在实际测试的过程中,前面转码的一小段不是以关键帧结尾的,做不到与后面一大段开头的关键帧衔接,衔接部分画面会卡顿 329 | 330 | #### 音频剪辑 331 | 332 | 如果想更精确剪辑,用LosslessCut 333 | 334 | https://github.com/mifi/lossless-cut/releases 335 | 336 | 用LosslessCut单独剪音频要在轨道里面把视频轨道禁用,输出格式选m4a或者aac 337 | 338 | 注意,不要直接剪aac格式,因为aac格式里面没有音频的时长信息,ffmpeg根据音频码率计算时间,导致剪辑不精确,要先封装为m4a格式再剪辑 339 | 340 | ``` 341 | ffmpeg -i input.aac -c copy output.m4a 342 | ``` 343 | 344 | 与视频一样,音频剪辑也可以精确到小数点 345 | 346 | ``` 347 | ffmpeg -ss 00:00:00 -to 00:01:29 -i input.m4a -c copy output.m4a 348 | ffmpeg -ss 00:00:00 -t 89 -i input.m4a -c copy output.m4a 349 | ``` 350 | 351 | 两种代码效果一样,-ss 00:00:00表示从音频的0秒开始,-to 00:01:29表示剪到1分29秒,-t 89表示往后剪89秒-c copy因为是音频,可以换成-c:a copy,-c copy更简单 352 | 353 | #### 更换音频 354 | 355 | 就是把视频原来的声音换成其他声音,比如换个bgm,不过换音频用pr更简单,ffmpeg比较麻烦但是换音频是没有损耗的,即没有经过转码,换音频速度更快 356 | 357 | 第一步,把视频去掉音频,参考[视频去掉音频](#视频去掉音频) 358 | 359 | 第二步,把另外一段音频剪到跟视频的时长一样,参考[音频剪辑](#音频剪辑) 360 | 361 | 第三步,视频与音频组合 362 | 363 | ``` 364 | ffmpeg -i input.flv -i input.m4a -c copy output.flv 365 | ffmpeg -i input.flv -i input.flac -c copy output.mkv 366 | ``` 367 | 368 | 注意mp3格式,aac格式,m4a格式的音频可以封装到flv或者mp4,flac格式的音频只能封装到mkv 369 | 370 | #### 拼接视频 371 | 372 | 前一段视频的结尾和后一段视频的开头一定要为关键帧,用录播姬切出来的视频符合要求 373 | 374 | 在视频所在目录右键新建一个txt文件,名字随意,这里命名为input.txt。打开txt文件,按拼接顺序输入视频的路径,格式如下 375 | 376 | ``` 377 | file '.\input1.flv' 378 | file '.\input2.flv' 379 | file '.\input3.flv' 380 | ``` 381 | 382 | 一行一个文件,用英文单引号把路径引起来,file后面有个空格,保存文件 383 | 384 | cmd输入合并命令 385 | 386 | ``` 387 | ffmpeg -f concat -safe 0 -i input.txt -c copy output.flv 388 | ``` 389 | 390 | 如果没有-safe 0,ffmpeg会警告文件不安全,拼接失败,-f concat,f是format的缩写,格式的意思,concat是一种拼接的方式,文件的路径已经写入txt文件里面了,所以输入txt文件即可,-c copy不转码,直接合并 391 | 392 | 如果出现几条黄色的警告写着时间戳错误,ffmpeg会自动修正,不必理会,如果想没有黄字警告,可以先把视频全部转封装为mp4 393 | 394 | 在实际测试中发现,录播姬和blrec的分段录播直接合并音画不同步,必须分开视频和音频合并,可以用这个程序快速合并 395 | 396 | https://gitee.com/djj45/luboconcat 397 | 398 | 无需python版(用之前请务必认真观看上面链接的说明) 399 | 400 | https://djj45.lanzouu.com/b02oyziti 401 | 402 | 密码:7dkd 403 | 404 | #### MP4封装与提取SRT字幕 405 | 406 | SRT字幕必须是UTF-8编码,如果不是,要加入选项`-sub_charenc xxx`指定SRT的编码格式,推荐用记事本打开非UTF-8编码的SRT字幕文件,另存为UTF-8编码 407 | 408 | mp4内封软字幕 409 | 410 | ``` 411 | ffmpeg -i input.mp4 -i input.srt -c:a copy -c:v copy -c:s mov_text output.mp4 //默认UTF-8编码 412 | ffmpeg -i input.mp4 -sub_charenc xxx -i input.srt -c:a copy -c:v copy -c:s mov_text output.mp4 //指定编码格式 413 | ``` 414 | 415 | MP4内封软字幕有可能需要在播放器里面手动选择一下字幕,应用比较少,可能有些播放器不支持,慎用 416 | 417 | mp4提取软字幕 418 | 419 | ``` 420 | ffmpeg -i input.mp4 -map 0:2 output.mp4 421 | ``` 422 | 423 | 命令不一定是`-map 0:2`,按实际情况填写,参考[map的使用](#-map的使用) 424 | 425 | #### 多音轨与多字幕电影的处理 426 | 427 | 如果下载了多音轨与多字幕的电影,想放到手机上看,但是手机又不方便切换音轨与字幕,可以用ffmpeg处理一下 428 | 429 | ``` 430 | ffmpeg -i input.mkv -map 0:x -map 0:y -map 0:z output.mkv 431 | ``` 432 | 433 | `-map 0:x -map 0:y -map 0:z`中的xyz按实际填写,参考[map的使用](#-map的使用) 434 | 435 | #### FLAC转WAV 436 | 437 | 在采样率和位深度不变的前提下,flac转wav是无损的,相当于解压缩。ffmpeg默认转换前后采样率不变,位深度为16位。如果是24位或者32位的flac无损转换,需要指定编码器`pcm_s24le`或者`pcm_s32le` 438 | 439 | ``` 440 | ffmpeg -i inputfile.flac output.wav //普通命令 441 | ffmpeg -i inputfile.flac -c:a pcm_s16le output.wav //普通命令完整版 442 | ffmpeg -i inputfile.flac -c:a pcm_s24le output.wav //24位flac转24位wav,32位同理 443 | ``` 444 | 445 | #### 视频循环增加时长 446 | 447 | n为循环次数,0为不循环 448 | 449 | ``` 450 | ffmpeg -stream_loop n -i input.mp4 -c copy output.mp4 451 | ``` 452 | 453 | #### 自溜高码率带字幕切片 454 | 455 | 视频从关键帧切断,字幕自己用aegisub做,封装为mkv格式 456 | 457 | ``` 458 | ffmpeg -i input.flv -i input.ass -c copy output.mkv 459 | ``` 460 | 461 | ### ffmpeg命令(转码/压制) 462 | 463 | #### 什么是转码 464 | 465 | 把视频或音频[解码](./音视频知识.md#解码)再重新编码叫做转码,一般转码是为了缩减视频体积,所以也叫压制,但是转码之后视频不一定会变小。字幕组通过压制把几十G的蓝光原盘压制成几个G。也可以通过压制把字幕和水印等压进视频里面,变成视频画面不可分割的一部分 466 | 467 | 如果输入这条命令,就会以默认的参数转码 468 | 469 | ``` 470 | ffmpeg -i input.flv output.mp4 471 | ``` 472 | 473 | 因为没有设置编码器,所以会有一个警告,ffmpeg会自动选择编码器,这个警告无所谓。ffmpeg默认输出的音频的比特率是128k,所以output.mp4的音频比特率是128k,由于没有指定音频编码器和音频格式,所以音频格式不变,音频进行了重新编码,质量下降。ffmpeg默认视频是以crf模式压制的,crf值是23,preset默认的值是5,此时视频质量主要受到crf值影响,preset的值也有一点影响,转码后的视频质量下降。压制的速度主要受到preset的值影响,压制速度较快 474 | 475 | #### 一些参数和模式的含义 476 | 477 | ##### preset 478 | 479 | - ultrafast 0 480 | - superfast 1 481 | - veryfast 2 482 | - faster 3 483 | - fast 4 484 | - medium 5 485 | - slow 6 486 | - slower 7 487 | - veryslow 8 488 | - placebo 9 489 | 490 | 491 | 492 | preset参数是x264,x265编码器为了操作简单内置的预设,preset的值与编码时间关系很大,对视频的质量也有影响,preset参数取值看上表,用左边的英文或者右边的数字都可以,placebo是几乎无损,但是编码时间太长了,没有必要用placebo。veryslow编码时间比placebo快几十倍,veryslow编码质量质量比placebo降低1%,slower编码时间大概是veryslow的一半,slower编码质量比veryslow降低3%,slow编码时间大概是slower的三分之二,slow编码质量比slower降低5%,medium编码时间更短,medium编码质量比slow降低5%-10%。preset的值(指数字)越小,编码生成的视频文件就会大一些,画质降低,编码速度加快 493 | 494 | preset值选择看需求,如果更追求画质,转码时间长无所谓,用veryslow(8),如果想画质又好速度又快,用slower(7),如果不太追求质量,想快点转码,用slow(6)或者medium(5) 495 | 496 | ##### crf 497 | 498 | crf全称Constant Rate Factor,用crf的值表示压制出来视频的质量。crf的值可以有一位小数,x264_8bit的crf值范围是0-51,x264_10bit的crf值范围是0-63,x264编码器默认crf值是23,x265_8bit和x265_10bit编码器的crf范围都是0-51,默认crf值都是28,x264的crf23效果等同于x265的crf28。crf的值越小,质量越高,crf的值越大,质量越低。crf的值是17或者18时,压制后的视频与原视频已经看不出区别(实际上压制后是有损的)。crf的推荐值为17-28,crf的值与视频质量成指数关系,crf的值增加6,视频码率大概变为原来的一半。经过测试,10M码率的视频,crf17压制后视频码率约为7M,crf23压制后视频码率约为3.5M 499 | 500 | 设置好一个crf值后,编码器根据视频的实际情况动态决定码率。比如一个视频前半部分是一段内容简单的画面,后半部分是一段内容复杂的画面,在压制的时候,前半部分的码率分配较少,后半部分的码率分配较多。crf的优点是让编码器动态分配码率,注重所有画面的质量,缺点是不能控制压制出来的视频体积大小 501 | 502 | 简单来说,crf模式是设定一个代表画质数字,让编码器决定码率,压制后的视频大小未知 503 | 504 | ##### abr 505 | 506 | abr,Average Bit Rate,平均码率模式,自主选择一个码率所为目标,例如想控制5000k码率,用`-b:v 5000k`或者`-b:v 5M`参数控制。如果原视频的码率前后差异很大,用abr压制效果会很差 507 | 508 | 一部动作电影往往结尾的场景比较复杂(特效多、打斗多),如果用了abr模式,编码器从视频的开头开始压制,无法预测后面的场景有多么复杂。假设压制一部动作电影,目标码率是5M,编码器可能一开始把电影的前面压到4M,因为开头的场景不复杂,动态场景也不多。虽然4M码率与目标5M码率有差距,但是编码器并不会立即拉高码率,而是会根据当前帧画面的复杂程度考虑下一帧画面的复杂程度,何况电影时长这么长,没有必要因为暂时低于目标码率马上就拉高码率,如果前面一段时间(时间究竟多长取决于编码器的算法)画面都是非常简单的画面,一直分配低于5M码率,编码器就慢慢把码率拉高,拉到6M,这样刚好达到目标5M的平均码率,如果这时出现小高能画面,特效和运动场景非常多,编码器可能会把码率拉到9M,等到小高能过了再把码率拉低,总之在某一段时间内(取决于算法),平均码率不断地控制为5M,平均码率低于5M就慢慢拉高,高于5M就慢慢拉低。等到电影进入到结尾的高能时刻,坏了,前面的码率已经平均到5M了,后面想拉高也拉高不了,导致结尾特效多,运动多的场景很糊 509 | 510 | 简单来说,abr将视频的码率控制在一个可自由调节的值附近,由于编码器没有整体预览一次视频,只能根据经验不断地调高调低,将码率控制为某一个值 511 | 512 | 把珈乐的一段原码率为10M的30s录播压成2M码率,然后把两段视频拼接在一起,做成一个前后码率差异巨大的1分钟视频。下图是整段视频的码率分析,用的软件为[Bitrate Viewer](https://www.videohelp.com/software/Bitrate-Viewer-2) 513 | 514 | 515 | 516 | 用crf17(视觉无损)压了一次,码率大概为5M,结果如下图,可见码率的大致分布于原视频差不多 517 | 518 | 519 | 520 | 用恒定5M码率压了一次,码率分布如下图。可见前半部分码率过高,而且差不多一直平均在5M码率左右,浪费了码率,中间码率突然升高,码率飙升,结尾因为平均码率超过5M,码率被拉低,结果还是超出了5M的码率 521 | 522 | 523 | 524 | 下图是用[2pass](#2pass)模式压制的码率分配比bitrate模式好,但是因为原视频码率差异太离谱了,所以码率分配还是不太理想,中间码率突变的时候码率拉得太高了,结尾码率强行拉低,向目标码率靠拢。实际上,不断地重复压制,n次压制后得到的码率分布趋向crf 525 | 526 | 527 | 528 | 以下为个人笔记 529 | 530 | >https://stackoverflow.com/questions/33611900/what-is-vbv-video-buffering-verifier-in-h-264 531 | > 532 | >https://forum.doom9.org/showthread.php?t=147460 533 | > 534 | >`minrate`和`maxrate`是进入`buffer`的最小和最大码率。在b站播放视频的时候,第一次打开视频或者拖动进度条到没有缓存的地方,会加载几秒,此时把缓冲区填满,然后缓冲区里面的内容下降到一定程度时,继续加载数据,保证播放的流畅。在ffmpeg中,一部分帧会进入缓冲区再出去,像水池一样,缓冲区储存的百分比反作用与编码的质量,保持缓冲区不溢出或者过低。如果缓冲区过低,编码的码率将提高;如果缓冲区溢出,会不惜画面质量丢弃一定的帧。一般来说,没有必要手动设置`bufsize`、`minrate`和`maxrate`。实际测试码率几乎恒定的视频,`bufsize`=`2*maxrate`=`2*b:v`,该参数与不设置几乎没有区别,`bufsize`=`maxrate`=`b:v`,该参数作用下峰值最大码率降低,平均码率降低 535 | 536 | ##### 2pass 537 | 538 | 1pass是压制一次,2pass可以理解为压制两次,第一遍快,目的是“看一遍”视频,弄清视频的码率分布情况,第二遍就根据第一遍得到的数据控制码率。2pass的目的是在一定码率的限制下向crf靠拢 539 | 540 | 2pass压制第一次的时候生成两个记录视频数据的文件,也可以生成视频文件,第一次完成后打开视频看一下,如果满意就不必进行第二次压制了。第二次压制的时候编码器根据第一次生成的数据文件决定码率分配 541 | 542 | 2pass压制第一次的时候可以用crf模式或者bitrate模式,默认是crf模式,如果视频码率变化大建议用crf模式,更加贴合码率的变化,如果视频码率变化不大用哪个都可以。2pass第一遍用crf模式和bitrate模式时间是几乎是一样的,默认使用快速压制参数。2pass第二次的时候就不能用crf模式了,只能用bitrate模式 543 | 544 | #### 模式的选择 545 | 546 | 如果目标是控制压制后视频的大小,而原视频前后的码率变化较大,选择2pass。crf虽然适用于前后码率变化大的视频,crf的值增加6压制后视频的大小减半,但是对一个视频第一次使用crf模式压制,生成视频的大小是不能准确预测的。如果对视频的大小没有要求,用crf。如果原视频的码率较为平缓,如A-SOUL的录播,使用bitrate模式也没有问题 547 | 548 | #### 压制实例分析 549 | 550 | 551 | 552 | 上图为原视频(珈乐的一场录播中的30秒)码率分布图,b站直播采用abr模式,直播10M码率,实际上码率会上下波动 553 | 554 | 555 | 556 | 上图采用的命令为 557 | 558 | ``` 559 | ffmpeg -i input.flv -c:a copy -c:b libx264 -crf 17 -preset 7 output.flv 560 | ``` 561 | 562 | 码率的分配与原视频一致,-crf 17为视觉无损,几乎看不出来与原视频的区别 563 | 564 | 565 | 566 | 上图采用的命令为 567 | 568 | ``` 569 | ffmpeg -i input.flv -c:a copy -c:v libx264 -b:v 8M -preset 7 output.flv 570 | ``` 571 | 572 | 压制后的视频刚开始码率低,因为目标码率是8M,刚开始要保守一点,结尾的码率又变稍微低,因为要向8M的目标码率靠拢。-c:a copy,音频不编码,-c:v libx264,用x264编码器编码,-b:v 8M,目标码率8M,-preset 7,预设值,对压制时间影响很大,对质量略微影响 573 | 574 | 575 | 576 | 上图采用的命令为 577 | 578 | ``` 579 | ffmpeg -y -i input.flv -an -c:v libx264 -crf 17 -preset 7 -pass 1 -f null NUL && ffmpeg -i 1.flv -c:a copy -c:v libx264 -b:v 8M -preset 7 -pass 2 output.flv 580 | ``` 581 | 582 | 看起来很长,实际上是两条命令合并在一起,&&是cmd的语法,表示先执行前面的命令,执行成功后才会执行后面的命令。第一遍用了-an,因为音频不用转码,不用分析音频的码率,用-c:a copy也没有问题。-f null表示生成的文件类型为空,NUL表示一个空文件,使用-y是因为ffmpeg可能会询问已经存在NUL文件,是否覆盖,如果不写-y,可能需要手动输入y然后回车才能执行命令。第一遍用crf模式,不生成文件。如果想第一遍生成文件,把-f null NUL改成temp.flv。(名字与封装格式随意)-pass 1表示第一次2pass,默认用了快速参数,需要的时间比第二次少,生成记录视频码率数据的文件,-pass 2表示第二次2pass,只能用bitrate模式,毕竟2pass相当于有目标码率的crf模式 583 | 584 | 585 | 586 | 上图采用的命令为 587 | 588 | ``` 589 | ffmpeg -y -i input.flv -an -c:v libx264 -b:v 8M -preset 7 -pass 1 -f null NUL && ffmpeg -i 1.flv -c:a copy -c:v libx264 -b:v 8M -preset 7 -pass 2 output.flv 590 | ``` 591 | 592 | 相比上一条命令,区别在于第一次用bitrate模式,由于原视频码率变化不大,crf和2pass的码率分布几乎一样 593 | 594 | #### 字幕压制 595 | 596 | ##### ffmpeg压制 597 | 598 | 把ass字幕文件和视频文件放在同一个目录下,输入命令 599 | 600 | ``` 601 | ffmpeg -i input.flv -c:a copy -c:v libx264 -b:v 14M -vf subtitles=input.ass -preset 7 output.flv 602 | ffmpeg -i input.flv -c:a copy -c:v libx264 -crf 17 -vf subtitles=input.ass -preset 7 output.flv 603 | ffmpeg -i input.mp4 -ss x -to y -c:a copy -c:v libx264 -b:v 10M -vf subtitles=input.ass -preset 7 output.mp4 #压字幕与剪辑结合,精确剪辑,无需改动字幕文件,建议参考视频剪辑命令 604 | ``` 605 | 606 | 如果想稍微提高质量,preset可以设置为8,不过压制时间长很多 607 | 608 | 压制的时候看一下这里,字体是否对得上(不一定三个字体完全一样,如Source Han Sans CN与Source Han Sans CN Regular是同一种字体) 609 | 610 | 611 | 612 | 如果对不上,用记事本打开ass文件,ffmpeg会把名字无法识别,名字错误,没有的字体换成其他字体,比如思源黑体 CN是不能识别的,需要改名为Source Han Sans CN。 613 | 614 | 615 | 616 | 字体的英文名可以用这个方法找到: 617 | 618 | https://docs.manim.community/en/stable/tutorials/using_text.html#using-fonts 619 | 620 | 不过ffmpeg5.0好像可以正确识别中文字体名了 621 | 622 | ##### pr插件 623 | 624 | [Ruminoid官网下载](https://vbox.moe/Ruminoid/) 625 | 626 | [Ruminoid官方教程](https://www.bilibili.com/video/BV16K4y1Y7vB) 627 | 628 | pr插件有官方教程,我就不多说了,pr导出的时候码率一定要选择适合的码率,原视频10M码率,半屏弹幕压制大约14M 629 | 630 | #### 弹幕压制 631 | 632 | [先把xml弹幕转换为ass弹幕](./录播.md#xml弹幕转ass弹幕),第一次压制的时候先用播放器加载弹幕,觉得差不多了压一分钟的弹幕看看效果 633 | 634 | 弹幕的显示范围、不透明度、阴影之类的参数在弹幕转换软件里面调一下 635 | 636 | 弹幕参数参考 637 | 638 | 639 | 640 | 更正,字体为汉仪旗黑75w(英文名:HYQiHei75w) 641 | 642 | 半屏弹幕参考命令,libpass对弹幕优化太渣,cpu占用率很低 643 | 644 | ``` 645 | ffmpeg -i input.flv -c:a copy -c:v libx264 -vf subtitles=input.ass -b:v 14M output.flv 646 | ffmpeg -i input.flv -c:a copy -c:v libx264 -vf subtitles=input.ass -preset 6 -b:v 14M output.flv 647 | ``` 648 | 649 | b站的投稿工具最大只能上传4g的视频,投稿工具能分p,网页端不能分p,但是限制没有4g这么小。码率14M超4g了,可以在投稿工具里面投一个几秒钟的视频,然后就可以在网页端传超过4g的视频了 650 | 651 | ##### 截取录播与弹幕 652 | 653 | 压制弹幕的时候建议先压制两三分钟的视频看看效果。首先要把录播视频剪几分钟下来,[用ffmpeg或者losslesscut可以快速无损剪辑。](#视频剪辑)假设从25分剪到27分,总共两分钟。然后把[xml弹幕转换为ass弹幕](./录播.md#xml弹幕转ass弹幕),用记事本打开ass弹幕,把除了从25分开始到27分结束的弹幕全部删了,保存,用[Aegisub](./字幕打轴.md)打开 654 | 655 | 656 | 657 | 点击平移时间 658 | 659 | 660 | 661 | 所有行的开始和结束时间提前25分钟,按确定即可 662 | 663 | 664 | 665 | 保存退出,一段2分钟的视频和弹幕就拿到了 666 | 667 | #### 裁剪画面 668 | 669 | 裁剪画面指把视频的某一区域裁剪出来 670 | 671 | ``` 672 | ffmpeg -i input.mp4 -c:v libx264 -c:a copy -crf 17 -preset 7 -vf crop=width:height:start_x:start_y output.mp4 673 | ``` 674 | 675 | `width`指裁剪后的视频宽度,`height`指裁剪后的视频高度,`start_x`与`start_y`分别指裁剪区域的左上角的xy坐标。坐标可以用[Snipaste](https://www.snipaste.com/)截图时获取。如果视频分辨率与显示器的分辨率不一致,还要进行坐标换算。 676 | 677 | #### 视频转GIF 678 | 679 | 建议用[GifCam](https://blog.bahraniapps.com/gifcam/#download)或者[ScreenToGif](https://www.screentogif.com/)用屏幕录制的方式做gif,不建议用ffmpeg做gif 680 | 681 | ``` 682 | ffmpeg -i input.mp4 -r fps output.gif //-r指定帧率,转换过程中会出现xxx无法加速的警告,不影响转换 683 | ``` 684 | 685 | 如果想获取更加高清的gif图,请参考https://gif.ski/ 686 | 687 | #### 改变分辨率 688 | 689 | 改变分辨率指将视频的分辨率放大或者缩小,分辨率变大会模糊,分辨率变小会丢失细节,实际上并没有什么作用,很少用到。如果想要超分辨率,使视频更加清晰,建议用AI超分辨率。如果视频的分辨率与显示器的分辨率不一致,播放器会调用渲染器将视频的分辨率缩放为与显示器一致,清晰度与缩放算法有关。 690 | 691 | ``` 692 | ffmpeg -i input.mp4 -c:v libx264 -c:a copy -crf 17 -preset 7 -vf scale=1280:720 output.mp4 693 | ffmpeg -i input.mp4 -c:v libx264 -c:a copy -crf 17 -preset 7 -vf scale=1280:-1 output.mp4 694 | ``` 695 | 696 | `-1`指高按照原视频比例 697 | 698 | #### 倒放 699 | 700 | 视频与音频都倒放 701 | 702 | ``` 703 | ffmpeg -i input.mp4 -c:v libx264 -c:a aac -ab 320k -vf reverse -af areverse -preset 7 -crf 17 output.mp4 704 | ``` 705 | 706 | #### 一图流 707 | 708 | 一图流指一张静止的图片配上bgm合成一个视频,用于投稿视频网站,参考:https://stackoverflow.com/questions/9253422/encoding-jpeg-as-h264-video 709 | 710 | ``` 711 | #mp4 712 | ffmpeg -loop 1 -r 24 -i input.png -i input.aac -c:v libx264 -preset 7 -tune stillimage -crf 23 -vf format=yuv420p -c:a copy -shortest output.mp4 713 | 714 | #mkv 715 | ffmpeg -loop 1 -r 24 -i input.png -i input.flac -c:v libx264 -preset 7 -tune stillimage -crf 23 -vf format=yuv420p -c:a copy -shortest output.mkv 716 | ``` 717 | 718 | mp4与mkv的区别就是mkv可以封装无损音频格式flac, 不过绝大部分视频网站不支持mkv格式。`-loop`参数指循环输入,因为同时也有`-shortest`参数,所以音频播放完一次就会停止输出,而图片每一帧都会循环输入。为什么视频从头到尾都是一张静止的图片,帧率却用了24帧呢?因为视频常见的低帧率是24帧,再低播放器可能无法播放,而且ffmpeg帧率越低,关键帧的间隔时间越长,很难拉进度条,因为进度条只能拉到有关键帧的地方。一图流做出来基本是投稿到视频网站的,帧率不能太低,否则无法播放。虽然每秒有24帧,但是总体视频码率不高,有`-tune stillimage` 和`-crf 23`参数限制,而且h264编码器对静止的视频码率压得很低,只有关键帧的地方视频瞬间码率大幅度提升,这些关键帧又不能减少,否则很难拉进度条。如果不指定视频格式,png是RGB格式,默认输出YUV444p,视频网站不支持这种格式。 719 | 720 | #### 硬件加速 721 | 722 | ``` 723 | ffmpeg -i input.mp4 -vf subtitles=input.ass -c:v h264_nvenc -preset 15 -c:a copy -b:v 14M output.mp4 724 | ffmpeg -i input.mp4 -vf subtitles=input.ass -c:v hevc_nvenc -preset 15 -c:a copy -b:v 14M output.mp4 725 | ``` 726 | 727 | asoul直播弹幕过多,建议用30系显卡压弹幕,所有30系显卡压弹幕速度一样。如果第二条命令速度可以接受,用第二条命令质量更好 728 | -------------------------------------------------------------------------------- /mac.md: -------------------------------------------------------------------------------- 1 | - [前言](#前言) 2 | - [录播](#录播) 3 | - [录播分段下载](#录播分段下载) 4 | - [Aegisub](#Aegisub) 5 | - [剪映字幕提取](#剪映字幕提取) 6 | - [ffmpeg](#ffmpeg) 7 | - [下载](#下载) 8 | - [配置环境变量](#配置环境变量) 9 | - [xml弹幕转ass弹幕](#xml弹幕转ass弹幕) 10 | 11 | ### 前言 12 | 13 | 本文介绍的方法为最适合小白的方法,由于我没有Mac系统,所以用Windows系统演示,与Mac系统步骤是一样的。提到的软件并没有能直接用于M1芯片的版本,需要源码编译安装,要有一定的计算机基础才能解决。我忘记还有rosetta2了,不需要自己编译了,我还找到了Aegisub和ffmpeg的m1版。 14 | 15 | ### 录播 16 | 17 | [blrec](https://github.com/acgnhiki/blrec)是用python写的,可以直接用pip安装,考虑到可能会有依赖等问题,故采用docker安装。m1不能用blrec的docker版,用pip不知道能不能装上。如果不可以,多尝试几个项目 18 | 19 | https://github.com/valkjsaaa/auto-bilibili-recorder 20 | 21 | https://github.com/AsaChiri/DDRecorder 22 | 23 | - 安装docker 24 | 25 | https://hub.docker.com/editions/community/docker-ce-desktop-mac 26 | 27 | 点击`Mac with Intel chip`下载 28 | 29 | - 启动 30 | 31 | 参照https://github.com/acgnhiki/blrec#docker 32 | 33 | 中的默认参数,在命令行输入命令,第一次启动请耐心等待下载镜像,下载完成后在浏览器输入`localhost:2233`即可访问录播页面 34 | 35 | 简单说明一下docker的原理和这条命令的意思 36 | 37 | - docker是容器引擎,运行装在容器里面的程序,优点是可移植性强,把程序打包在一个容器里面,可以在不同CPU架构的电脑上运行,无需考虑不同电脑操作系统和依赖问题,系统能装docker,镜像支持该系统的CPU架构就可以运行 38 | - `~`是home目录,即`/Users/xxx`,`~/blrec`是home目录下的blrec文件夹,即`/Users/xxx/blrec`,录播保存的路径,可修改。冒号后面的`/rec`目录是容器内部的目录,不能修改。第一个2233为本机端口,启动容器后在浏览器输入`localhost:2233`即可访问录播页面,可修改。冒号后面的2233为容器内部端口,不可修改 39 | 40 | ### 录播分段下载 41 | 42 | 源码:https://github.com/A-Soul-Database/RangeDownloader/ 43 | 44 | - 安装python 45 | 46 | https://www.python.org/downloads/macos/ 47 | 48 | 找到`3.8.10 universal2`版,下载并安装 49 | 50 | - 下载github源码 51 | 52 | https://github.com/A-Soul-Database/RangeDownloader/archive/refs/heads/main.zip 53 | 54 | - 解压并进入解压后的文件夹,[在这个目录下打开命令行窗口](https://zhuanlan.zhihu.com/p/162748665) 55 | 56 | 57 | 58 | 输入命令安装依赖包 59 | 60 | ``` 61 | pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt 62 | ``` 63 | 64 | 进入Code目录并启动 65 | 66 | ``` 67 | cd Code 68 | python app.py 69 | ``` 70 | 71 | 然后会在浏览器弹出下载页面。以后只需在Code目录下打开命令行窗口,输入`python app.py`即可 72 | 73 | ### Aegisub 74 | 75 | 源码:https://github.com/Aegisub/Aegisub 76 | 77 | M1版:https://gist.github.com/frozenpandaman/92a84cd2ba690bb2399afd04e695bf8c 78 | 79 | M1版下载直链:https://elifessler.com/aegi/6a556aa-Aegisub.app.zip 80 | 81 | 第三方新版: 82 | 83 | **建议使用这个**:https://github.com/wangqr/Aegisub/releases 84 | 85 | http://plorkyeran.com/aegisub/ 86 | 87 | github版,2014年发布,版本过旧 88 | 89 | https://githubdl.djj45.workers.dev/https://github.com/Aegisub/Aegisub/releases/download/v3.2.2/Aegisub-3.2.2.dmg 90 | 91 | ### 剪映字幕提取 92 | 93 | https://gitee.com/djj45/jianyingsrt 94 | 95 | ### ffmpeg 96 | 97 | 源码:https://ffmpeg.org/download.html#get-sources 98 | 99 | #### 下载 100 | 101 | 官网版:https://evermeet.cx/ffmpeg/ 102 | 103 | 第三方版,支持m1:https://www.osxexperts.net/ 104 | 105 | ffmpeg是加字幕用的。ffprobe是分析视频信息用的,非必要。由于这两个网站下载速度可能很慢,我已经下载好了这两个压缩包,点击链接即可下载。mac解压7z格式需要额外的软件,嫌麻烦的可以下载解压后的文件。 106 | 107 | https://od.djj45.workers.dev/%E8%BD%AF%E4%BB%B6/ffmpeg_mac/ 108 | 109 | 110 | 111 | #### 配置环境变量 112 | 113 | 参照https://zhuanlan.zhihu.com/p/341495283 114 | 115 | 解压刚才下载的ffmpeg和ffprobe压缩包,得到ffmpeg和ffprobe文件,把文件移动到`/usr/local/`目录里面,参照知乎里面的方法,把命令换成下面的 116 | 117 | ``` 118 | export ffmpeg=/usr/local/ffmpeg 119 | export PATH=$PATH:$ffmpeg 120 | 121 | export ffprobe=/usr/local/ffprobe 122 | export PATH=$PATH:$ffprobe 123 | ``` 124 | 125 | ### xml弹幕转ass弹幕 126 | 127 | https://github.com/hihkm/DanmakuFactory#linux 128 | 129 | 这个只能自己编译了 -------------------------------------------------------------------------------- /picture/123456.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/123456.png -------------------------------------------------------------------------------- /picture/Barn-yuv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Barn-yuv.png -------------------------------------------------------------------------------- /picture/Interlace_zoom.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Interlace_zoom.gif -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-24_21-58-45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-24_21-58-45.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-25_11-52-56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-25_11-52-56.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-25_11-54-18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-25_11-54-18.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_14-45-37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_14-45-37.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_14-48-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_14-48-12.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_14-52-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_14-52-23.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_14-54-53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_14-54-53.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_15-00-00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_15-00-00.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_15-13-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_15-13-25.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_15-20-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_15-20-20.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_15-25-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_15-25-58.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_15-29-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_15-29-49.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_15-38-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_15-38-23.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_15-41-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_15-41-41.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_16-13-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_16-13-58.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_16-14-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_16-14-47.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_16-16-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_16-16-22.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_16-23-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_16-23-12.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_16-37-52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_16-37-52.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_16-44-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_16-44-48.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_16-46-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_16-46-15.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-27_19-25-00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-27_19-25-00.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-29_19-40-51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-29_19-40-51.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-29_19-42-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-29_19-42-09.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-29_19-44-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-29_19-44-19.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-29_19-46-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-29_19-46-16.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-29_22-50-56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-29_22-50-56.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-29_22-51-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-29_22-51-33.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-29_22-53-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-29_22-53-05.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-29_22-53-26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-29_22-53-26.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-29_22-53-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-29_22-53-58.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-30_10-09-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-30_10-09-33.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-30_10-10-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-30_10-10-42.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-31_12-30-18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-31_12-30-18.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-31_12-56-39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-31_12-56-39.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-31_14-11-31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-31_14-11-31.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-31_14-13-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-31_14-13-17.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-31_14-14-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-31_14-14-09.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-31_14-14-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-31_14-14-41.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-31_14-16-53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-31_14-16-53.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-08-31_16-33-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-08-31_16-33-48.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-03_14-00-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-03_14-00-35.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-03_14-01-37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-03_14-01-37.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-03_14-01-54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-03_14-01-54.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-03_20-49-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-03_20-49-33.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-03_20-56-34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-03_20-56-34.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-03_20-56-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-03_20-56-50.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-03_21-13-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-03_21-13-49.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-03_23-03-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-03_23-03-42.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-03_23-06-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-03_23-06-10.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-04_17-25-46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-04_17-25-46.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-04_18-19-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-04_18-19-02.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_09-51-52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_09-51-52.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_09-54-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_09-54-16.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_15-05-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_15-05-20.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_15-07-37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_15-07-37.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_15-08-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_15-08-48.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_15-34-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_15-34-16.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_16-03-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_16-03-12.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_16-18-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_16-18-25.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_16-41-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_16-41-36.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_16-42-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_16-42-50.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_17-19-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_17-19-23.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_17-33-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_17-33-47.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_18-20-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_18-20-03.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_18-31-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_18-31-29.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_18-43-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_18-43-22.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_18-47-37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_18-47-37.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_18-57-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_18-57-36.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_18-59-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_18-59-59.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_19-25-28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_19-25-28.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_19-27-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_19-27-29.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_19-29-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_19-29-22.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_19-30-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_19-30-19.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_19-32-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_19-32-15.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_19-34-47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_19-34-47.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_19-38-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_19-38-04.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_19-41-46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_19-41-46.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_19-54-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_19-54-10.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_19-56-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_19-56-23.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_19-58-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_19-58-43.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_19-59-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_19-59-59.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_20-03-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_20-03-57.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_20-09-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_20-09-15.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_20-10-27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_20-10-27.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_20-12-53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_20-12-53.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_21-49-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_21-49-01.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_22-12-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_22-12-15.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_22-14-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_22-14-30.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_22-14-52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_22-14-52.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_22-15-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_22-15-25.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_22-20-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_22-20-09.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-05_22-25-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-05_22-25-55.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-06_10-27-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-06_10-27-49.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-06_10-38-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-06_10-38-29.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-06_11-15-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-06_11-15-15.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-06_14-44-52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-06_14-44-52.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-06_15-16-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-06_15-16-10.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-06_22-25-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-06_22-25-09.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-06_22-29-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-06_22-29-30.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-06_22-32-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-06_22-32-09.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-06_22-32-26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-06_22-32-26.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-08_18-08-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-08_18-08-04.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-09_21-32-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-09_21-32-30.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-09_22-47-31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-09_22-47-31.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-09_22-48-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-09_22-48-05.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-09_23-02-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-09_23-02-43.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-09_23-06-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-09_23-06-13.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-12_16-36-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-12_16-36-10.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-30_15-35-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-30_15-35-32.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-30_15-36-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-30_15-36-01.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-30_15-36-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-30_15-36-48.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-30_15-52-27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-30_15-52-27.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-30_15-58-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-30_15-58-12.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-09-30_16-12-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-09-30_16-12-13.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-10-21_11-13-46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-10-21_11-13-46.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-10-21_11-14-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-10-21_11-14-30.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-10-21_11-21-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-10-21_11-21-36.png -------------------------------------------------------------------------------- /picture/Snipaste_2021-10-21_12-14-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2021-10-21_12-14-09.png -------------------------------------------------------------------------------- /picture/Snipaste_2022-02-20_12-50-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2022-02-20_12-50-03.png -------------------------------------------------------------------------------- /picture/Snipaste_2022-02-20_14-10-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2022-02-20_14-10-29.png -------------------------------------------------------------------------------- /picture/Snipaste_2022-02-21_12-21-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2022-02-21_12-21-36.png -------------------------------------------------------------------------------- /picture/Snipaste_2022-03-09_10-14-21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2022-03-09_10-14-21.png -------------------------------------------------------------------------------- /picture/Snipaste_2022-03-09_10-55-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2022-03-09_10-55-22.png -------------------------------------------------------------------------------- /picture/Snipaste_2022-03-09_10-57-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2022-03-09_10-57-08.png -------------------------------------------------------------------------------- /picture/Snipaste_2022-03-09_10-58-56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2022-03-09_10-58-56.png -------------------------------------------------------------------------------- /picture/Snipaste_2022-03-09_10-59-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2022-03-09_10-59-42.png -------------------------------------------------------------------------------- /picture/Snipaste_2022-03-09_11-02-45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2022-03-09_11-02-45.png -------------------------------------------------------------------------------- /picture/Snipaste_2022-05-02_22-52-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/Snipaste_2022-05-02_22-52-29.png -------------------------------------------------------------------------------- /picture/ab3cq-t8spz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/ab3cq-t8spz.jpg -------------------------------------------------------------------------------- /picture/asoul.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 获取直播素材获取直播素材光速切片光速切片旧直播切片旧直播切片自己录播自己录播MacMacWindowsWindowsblrecblrecb站录播姬或blrecb站录播姬或blrec录播站分段下载录播站分段下载歌舞切片歌舞切片杂谈切片杂谈切片剪映语音生成字幕剪映语音生成字幕Aegisub手动打轴Aegisub手动打轴提取提取MacMacWindowsWindows自制的提取工具自制的提取工具自制的提取工具或吾爱破解上的提取工具自制的提取工具或吾爱破解上的提取工具下载LRC歌词下载LRC歌词下载文本歌词下载文本歌词Aegisub手动打轴Aegisub手动打轴单语歌词单语歌词双语歌词双语歌词对齐开头的时间轴对齐开头的时间轴对齐开头的时间轴并作双语处理对齐开头的时间轴并作双语处理导入Aegisub导入Aegisub修改字幕样式,导出为ass格式修改字幕样式,导出为ass格式导入Aegisub导入Aegisubffmpeg压制ffmpeg压制ffprobe检查音视频码率,视频帧率,老手可忽略ffprobe检查音视频码率,视频帧率,老手可忽略投稿投稿A-SOUL切片流程图A-SOUL切片流程图Text is not SVG - cannot display -------------------------------------------------------------------------------- /picture/encoding_time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/encoding_time.png -------------------------------------------------------------------------------- /picture/动态更正的团色.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/动态更正的团色.jpg -------------------------------------------------------------------------------- /picture/在qa中偷偷改了错误的团色.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/在qa中偷偷改了错误的团色.png -------------------------------------------------------------------------------- /picture/屏幕截图 2021-10-21 111045.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/屏幕截图 2021-10-21 111045.png -------------------------------------------------------------------------------- /picture/弹幕参数.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/弹幕参数.png -------------------------------------------------------------------------------- /picture/第一次qa提到的团色.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djj45/asoul/dd48ae849f1205b0aea65a1ca6dc0b5acc9def40/picture/第一次qa提到的团色.png -------------------------------------------------------------------------------- /字幕打轴.md: -------------------------------------------------------------------------------- 1 | - [简介](#简介) 2 | - [自动生成字幕](#自动生成字幕) 3 | - [下载](#下载) 4 | - [配置](#配置) 5 | - [工作界面和快捷键](#工作界面和快捷键) 6 | - [导入歌词](#导入歌词) 7 | - [导入视频](#导入视频) 8 | - [加入图片](#加入图片) 9 | - [PNG图片](#PNG图片) 10 | - [自己画图](#自己画图) 11 | - [设置字幕样式](#设置字幕样式) 12 | - [字体](#字体) 13 | - [下载字体](#下载字体) 14 | - [字体下载网站](#字体下载网站) 15 | - [切片常用字体](#切片常用字体) 16 | - [杂谈](#杂谈) 17 | - [歌舞](#歌舞) 18 | - [安装字体](#安装字体) 19 | - [找歌词](#找歌词) 20 | - [纯文本歌词](#纯文本歌词) 21 | - [酷我音乐](#酷我音乐) 22 | - [百度搜索歌词](#百度搜索歌词) 23 | - [Listen1](#Listen1) 24 | - [LRC歌词](#LRC歌词) 25 | - [下载酷我音乐歌词](#下载酷我音乐歌词) 26 | - [下载网易云音乐歌词](#下载网易云音乐歌词) 27 | - [方法一](#方法一) 28 | - [方法二](#方法二) 29 | - [方法三](#方法三) 30 | - [歌词字幕](#歌词字幕) 31 | - [LRC转ASS](#LRC转ASS) 32 | - [单语LRC歌词](#单语LRC歌词) 33 | - [单语文本歌词](#单语文本歌词) 34 | - [双语LRC歌词](#双语LRC歌词) 35 | - [中日歌词分离](#中日歌词分离) 36 | - [平移时间](#平移时间) 37 | - [复制时间轴](#复制时间轴) 38 | - [调换顺序](#调换顺序) 39 | - [双语文本歌词](#双语文本歌词) 40 | - [淡入淡出特效](#淡入淡出特效) 41 | 42 | - [打轴要求](#打轴要求) 43 | - [Aegisub自动化插件](#Aegisub自动化插件) 44 | - [Aegisub特效模板](#Aegisub特效模板) 45 | 46 | ### 简介 47 | 48 | 本篇适用于切片man 49 | 50 | - 对于杂谈切片,现在有自动生成字幕的工具,生成字幕后用Aegisub等软件稍微处理一下即可,已经不需要手工打轴了,大大简化工作量 51 | - 对于歌舞切片,下载带有时间轴的srt格式歌词,导入Aegisub等软件,时间对准开始唱的第一句即可 52 | 53 | ### 自动生成字幕 54 | 55 | 利用剪映的免费语音识别转换成字幕,准确率高,再用提取工具导出字幕便于后续修改 56 | 57 | [自制剪映字幕提取工具](https://gitee.com/djj45/jianyingsrt) 58 | 59 | [吾爱破解上的剪映字幕提取工具](https://www.52pojie.cn/forum.php?mod=viewthread&tid=1564771) 60 | 61 | [剪映专业版](https://lv.ulikecam.com/) 62 | 63 | ### 下载 64 | 65 | Aegisub官网下载: 66 | 67 | https://github.com/Aegisub/Aegisub/releases 68 | 69 | 不过官网是2014版的,版本过旧,可以下载第三方编译的新版: 70 | 71 | **建议用这个**:https://github.com/wangqr/Aegisub/releases 72 | 73 | http://plorkyeran.com/aegisub/ 74 | 75 | ### 配置 76 | 77 | 点击选项 78 | 79 | 80 | 81 | 点击备份,设置一下自动保存的路径,保存间隔设为60秒,降低软件崩溃后的损失 82 | 83 | 84 | 85 | ### 工作界面和快捷键 86 | 87 | 黄色框是打轴的区域,用鼠标左键设置起始位置,用鼠标右键设置结束位置,鼠标滚轮控制音轨移动。红色箭头指的红线是起始位置,蓝色箭头指的蓝线是结束位置,红色线与蓝色线围成的时间就是一行字幕的显示时间。按快捷键`s`从起始位置播放到结束位置,按快捷键`t`从起始位置播放到歌曲结尾,播放过程中按快捷键`h` 停止,进度条回到开始位置。快捷键`q`是播放开始位置前0.5秒的声音,快捷键`w`是播放结束位置后0.5秒的声音,快捷键`d`是播放结束位置前0.5秒的声音,快捷键`g`确定红线到蓝线的范围为一句歌词,自动跳到下一句歌词。绿色箭头指的地方是选择字幕样式预设的地方,字幕样式需要自定义。右边橙色框从左到右三个滑块调节分别的是水平缩放(调一下就懂了),频谱的高度和音量的大小,点击紫色箭头可以解除频谱高度与音量大小的同步,为了打轴方便,解除同步并把频谱高度调到最大,调节合适的音量。下面粉色框的位置是歌词手动输入和添加效果的地方。如果光标在粉色框时想用快捷键或者用不了快捷键的时候,鼠标左键单击最上方棕色箭头指的地方即可 88 | 89 | 90 | 91 | ### 导入歌词 92 | 93 | [歌词获取方法](#找歌词) 94 | 95 | Aegisub不支持直接导入LRC格式歌词,需要转换成SRT格式,[在线转换](http://www.lrccon.com/convert.php) 96 | 97 | 上面的网站转换日文歌词会出现乱码,需要下载[转换软件](http://www.xitongzhijia.net/soft/152316.html) 98 | 99 | ### 导入视频 100 | 101 | Aegisub不支持直接导入flv格式,需要[转封装](./ffmpeg.md#转封装)为mp4 102 | 103 | 视频可以这样拖进去 104 | 105 | 106 | 107 | 也可以这样添加 108 | 109 | 110 | 111 | 先导入字幕再导入视频 112 | 113 | 114 | 115 | ### 加入图片 116 | 117 | #### PNG图片 118 | 119 | **Mac用不了** 120 | 121 | 参考https://www.bilibili.com/read/cv1787416 122 | 123 | 直接下载https://github.com/wangqr/Aegisub/releases就能用了,不需要配置 124 | 125 | ``` 126 | {\p1\bord0\shad0\1img(D:/pic/Wink1.png)\pos(491.867,563.555)}m 0 0 l 0 162 l 162 162 l162 0\N\N{\绘图模式开启\边框为0\阴影为0\mod滤镜的图片加载标签(路径)\位置}绘图代码 127 | ``` 128 | 129 | 图片格式只支持PNG,假设图片的分辨率是162*162,(0, 0), (0, 162), (162,162), (162, 0)图片要填充的区域,如果设置超过162,图片会重复填充`l`是小写的`L`,用作分隔符,`\N`后面的是注释 130 | 131 | 不过加入图片用到了VSFilterMod,导出的时候同样需要用到VSFilterMod,ffmpeg是不支持VSFilterMod的,除非自己编译 132 | 133 | 首先要下载VSFilterMod 134 | 135 | https://github.com/sorayuki/VSFilterMod/releases 136 | 137 | 可以用[MeGUI](https://sourceforge.net/projects/megui/)导出: 138 | 139 | https://burgertown.tk/2019/03/19/suppression/ 140 | 141 | 或者按照b站专栏的方法用小丸工具箱导出 142 | 143 | #### 自己画图 144 | 145 | aegisub自带的Assdraw3可以画一些简单的图片,利用了ass字幕文件的特性 146 | 147 | https://www.bilibili.com/video/av61139875 148 | 149 | ### 设置字幕样式 150 | 151 | 点击样式管理器 152 | 153 | 154 | 155 | 点击新建 156 | 157 | 158 | 159 | [选择喜欢的字体](#字体),不想要阴影改为0,次要颜色就是卡拉OK的时候没有唱过的字显示的颜色,想要字幕显示像卡拉OK一样需要k帧,k帧就不展开了,普通歌词次要颜色不显示。对齐方式选左下角(1),下面(2)或者右下角(3)。先点击确定,边距和字体等一下一边预览一边调节 160 | 161 | 162 | 163 | 如果电脑的显示缩放不是100%,Aegisub的取色器就会出现问题,取色的区域是取色器上方的区域而不是取色器触碰到的那个点,十六进制颜色写在红框处 164 | 165 | 这个版本的aegisub已经修复取色器问题https://github.com/wangqr/Aegisub/releases 166 | 167 | 168 | 169 | 主要颜色可以用应援色 170 | 171 | 172 | 173 | A-SOUL团色 174 | 175 | 176 | 177 | 点击复制到当前脚本 178 | 179 | 180 | 181 | 任意单击一行字幕,Ctrl+A全选,全部换成刚刚设置的样式 182 | 183 | 184 | 185 | 把画面调大,播放,看一下字幕样式是否满意。 186 | 187 | 188 | 189 | 预览不满意的话打开样式管理器,单击想要修改的样式,点编辑 190 | 191 | 192 | 193 | 调样式的时候按应用就可以预览了,最后满意了就按确定 194 | 195 | 196 | 197 | 把调好的样式复制到样式库保存,下次就可以直接使用了 198 | 199 | 200 | 201 | ### 字体 202 | 203 | > 如果使用的字幕压制软件无法识别中文字体名称,可以[参考这里](https://docs.manim.community/en/stable/tutorials/using_text.html#using-fonts)获取字体的英文名称 204 | 205 | #### 下载字体 206 | 207 | 208 | 209 | 210 | 211 | 字体分为衬线字体(serif)和无衬线体(sans serif)。上图中左边是无衬线体,右边是衬线字体。中文字体中,宋体是衬线字体,黑体是无衬线体,一般用无衬线体 212 | 213 | 可以免费商用的中文、英文、日文、韩文的衬线字体和无衬线体各一份我已经打包好了,也可以去官网下载 214 | 215 | https://pan.baidu.com/s/1a-kfacU09U2e_HENkeZong&pwd=i24r 216 | 217 | [思源黑体(Source Han Sans)](https://github.com/adobe-fonts/source-han-sans/releases) 218 | 219 | 下载不同语言的思源黑体的Subset版 220 | 221 | [思源宋体(Source Han Serif)](https://source.typekit.com/source-han-serif/cn/) 222 | 223 | [Roboto英文无衬线体](https://fonts.google.com/specimen/Roboto) 224 | 225 | [Playfair Display英文衬线字体](https://fonts.google.com/specimen/Playfair+Display) 226 | 227 | 使用字体的时候一定要查清楚能不能免费使用,避免版权纠纷 228 | 229 | #### 字体下载网站 230 | 231 | https://www.qiuziti.com/ 232 | 233 | https://www.hellofont.cn/home 234 | 235 | https://www.100font.com/ 236 | 237 | https://www.fontspace.com/ 238 | 239 | #### 切片常用字体 240 | 241 | ##### 杂谈 242 | 243 | [汉仪雅酷黑](https://www.hellofont.cn/font-detail?fontid=2630) 244 | 245 | [文悦新青年体](https://www.qiuziti.com/search.html?fn=%E6%96%87%E6%82%A6%E6%96%B0%E9%9D%92%E5%B9%B4%E4%BD%93) 246 | 247 | ##### 歌舞 248 | 249 | [锐字真言体](https://www.qiuziti.com/search.html?fn=%E9%94%90%E5%AD%97%E7%9C%9F%E8%A8%80%E4%BD%93) 250 | 251 | 思源黑体 252 | 253 | #### 安装字体 254 | 255 | 解压,复制所有字体 256 | 257 | 258 | 259 | 粘贴到C盘的Windows目录下的Fonts目录 260 | 261 | 262 | 263 | ### 找歌词 264 | 265 | #### 纯文本歌词 266 | 267 | ##### 酷我音乐 268 | 269 | ##### 270 | 271 | ##### 百度搜索歌词 272 | 273 | ##### Listen1 274 | 275 | Listen1浏览器插件可以勾选是否显示歌词译文 276 | 277 | 278 | 279 | 直接复制即可 280 | 281 | 282 | 283 | #### LRC歌词 284 | 285 | 如果想下载双语LRC歌词,Windows最好的方法是[方法二](#方法二),Mac能实现的方法是[方法一](#方法一)和[网页抓取歌词](./mac.md#下载双语LRC歌词),不过方法一没有翻译,想要双语歌词可以结合方法一和网页抓取歌词的操作,或者直接用网页抓取歌词的操作 286 | 287 | ##### 下载酷我音乐歌词 288 | 289 | 设置一下歌词的保存路径,播放歌曲,等几秒钟歌词就自动下载到设置的路径 290 | 291 | 292 | 293 | ##### 下载网易云音乐歌词 294 | 295 | ###### 方法一 296 | 297 | 介绍: 298 | 299 | https://www.cnblogs.com/BensonLaur/p/9695769.html 300 | 301 | 下载链接: 302 | 303 | https://github.com/BesLyric-for-X/BesLyric-for-X/releases 304 | 305 | 优点:Mac、Windows(Windows用户建议用方法二)都可以用 306 | 307 | 缺点:好像不能下载双语歌词,歌名搜索要完全匹配,严格大小写,建议从网易云音乐里面复制歌名 308 | 309 | ###### 方法二 310 | 311 | https://github.com/jitwxs/163MusicLyrics/releases 312 | 313 | 314 | 315 | 输入歌曲的id即可获取歌词,歌曲id就是在浏览器打开网易云音乐官网,搜索歌曲,点开,歌曲id在链接里面,如 316 | 317 | https://music.163.com/#/song?id=26096272 318 | 319 | 优点:可以选择单独下载歌词,单独下载译文,歌词与译文一起下载 320 | 321 | 缺点:只能Windows用 322 | 323 | ###### 方法三 324 | 325 | 在[b站专栏](https://www.bilibili.com/read/cv10109846)找到的方法 326 | 327 | 打开[网易云音乐网页版](https://music.163.com/),搜索歌曲,点开歌曲播放,打开浏览器的开发者模式 328 | 329 | 330 | 331 | 点击`Network`,没有找到`Network`的话点击图片里面`Network`右边的`>>`。刷新一下网页,拖一下歌曲的进度条,搜索`lyric`,点击最底下的一个,展开lrc标签,lyric那一行就是歌词,鼠标连续点击三下这一行,歌词全部选中,右键,copy value,复制到文本编辑器,如果没有换行就把`\n`替换成回车,复制到[转换网站转换](http://www.lrccon.com/convert.php)。得到的歌词是单语歌词,导入aegisub,空白行一定要删掉 332 | 333 | 334 | 335 | 点击最后一行,在之后插入新行 336 | 337 | 338 | 339 | 复制网页版的带译文歌词 340 | 341 | 342 | 343 | 在最后的空白新行右键,点击粘贴行 344 | 345 | 346 | 347 | 歌词分为两个部分,第一部分是带时间轴的SRT歌词,第二部分是没有时间轴的文本歌词 348 | 349 | 然后[分离歌词](#中日歌词分离) 350 | 351 | 352 | 353 | 歌词分为三个部分,第一部分是带时间轴的LRC歌词,第二部分是不带时间轴的外文歌词,第三部分是不带时间轴译文,剩下的操作就按照[双语LRC歌词](#双语LRC歌词)的处理方法做,把第二部分不带时间轴的外文歌词删掉 354 | 355 | ### 歌词字幕 356 | 357 | #### LRC转ASS 358 | 359 | lrc歌词不能导入aegisub,要先转换为srt格式 360 | 361 | 建议用我写的程序进行转换,使用前请务必认真阅读说明 362 | 363 | https://gitee.com/djj45/lrc2srt 364 | 365 | 无需python版 366 | 367 | https://djj45.lanzouu.com/b02oy6l9c 368 | 369 | 密码:756s 370 | 371 | #### 单语LRC歌词 372 | 373 | LRC歌词自带时间轴 374 | 375 | 如果导入的是带时间轴的LRC歌词,批量修改时间轴就可以了,不需要手动打轴 376 | 377 | 鼠标点击第一行字幕,然后点击一下红色箭头所指的地方,用快捷键就不会出错,按`t`键开始播放,记录第一句唱的时间,按`h`键停止播放 378 | 379 | 380 | 381 | 鼠标移动到箭头指的地方,开始时间是0:00:23.90,歌词的开始时间是0:00:16.40,所以歌词要延后0:00:07.50 382 | 383 | 384 | 385 | 点击平移时间 386 | 387 | 388 | 389 | 输入时间,延后,应用于所有行的开始和结束时间,确定 390 | 391 | 392 | 393 | #### 单语文本歌词 394 | 395 | 新建一个txt文档,把歌词粘贴进去,空白行不用管,一行一句歌词 396 | 397 | 398 | 399 | 导入字幕,点击确定 400 | 401 | 402 | 403 | 然后再导入视频,用`s`,`q`,`w`,`d`,`g`,鼠标左右键,鼠标滚轮配合,一句的结尾紧贴下一句的开头(间隔过长除外,如间奏),紧贴的话按`g`键跳到下一句,开头部分就对好了,只需考虑结尾即可 404 | 405 | 406 | 407 | #### 双语LRC歌词 408 | 409 | 下面介绍中日双语字幕的处理方法,中英双语字幕同理 410 | 411 | 412 | 413 | 导入转换好的SRT字幕发现日文与中文是交错的,而且日文字幕的开始时间和结束时间是正常的,中文字幕的开始时间和结束时间是一样的,中文字幕显示不了(情况可能相反) 414 | 415 | ##### 中日歌词分离 416 | 417 | 在[b站专栏](https://www.bilibili.com/read/cv6740177/)找到的一个非常好用的[Aegisub插件](https://github.com/dumpling233/aegisub_Automation) 418 | 419 | 点击绿色的code按钮,点击Download Zip下载 420 | 421 | 422 | 423 | 把歌词处理小插件粘贴到Aegisub的安装目录下的这个文件夹里面 424 | 425 | 426 | 427 | 把歌词导入进Aegisub,歌词一定要中日交替,这里第一行不是歌词,不符合中日交替,点击第一行,右键,把第一行删掉 428 | 429 | 430 | 431 | 点击任意一行歌词,Ctrl+A全选,点击自动化,歌词处理,中日分离即可 432 | 433 | 434 | 435 | ##### 平移时间 436 | 437 | 先把修改后的字幕导入Aegisub,再导入视频,点击第一行字幕,按`t`键,记录第一句开始的时间,这里是0:00:25.65,然后[平移时间](#单语LRC歌词) 438 | 439 | 440 | 441 | ##### 复制时间轴 442 | 443 | 选择全部的日文字幕(鼠标单击第一行日文字幕,拉到最后一行日文字幕,先按`Shift` 键再单击最后一行日文字幕),右键,复制行 444 | 445 | 446 | 447 | 选择所有的中文字幕,右键,选择性粘贴 448 | 449 | 450 | 451 | 勾选开始时间和结束时间,确定即可 452 | 453 | 454 | 455 | ##### 调换顺序 456 | 457 | 如果下面的字幕日语在上面,中文在下面,实际显示的时候日文在下面,中文在上面,如果想调换顺序,把所有中文字幕[剪切粘贴](#双语字幕)到日文字幕上面即可 458 | 459 | 460 | 461 | 462 | 463 | #### 双语文本歌词 464 | 465 | [导入歌词](#单语文本歌词) 466 | 467 | [分离双语歌词](#中日歌词分离) 468 | 469 | #### 淡入淡出特效 470 | 471 | ##### 正则 472 | 473 | 编辑->搜索替换 474 | 475 | 476 | 477 | ##### 卡拉ok模板 478 | 479 | 单击第一行字幕,右键,在第一行之前插入一行 480 | 481 | 482 | 483 | 勾选注释,在右边红框处输入template,在下面红框处输入淡入淡出代码`{\fad(200,200)}`,代码用英文键盘输入,左边是淡入时间,右边是淡出时间 484 | 485 | 486 | 487 | 选中特效字幕,点击自动化,应用卡拉OK模板 488 | 489 | 490 | 491 | 放大预览 492 | 493 | 494 | 495 | 如果不满意,改变特效代码,重新应用一次卡拉OK模板即可 496 | 497 | 点击另存为字幕,与视频放在同一个目录下 498 | 499 | 500 | 501 | ### 打轴要求 502 | 503 | https://www.bilibili.com/video/BV1oK411T7kL 504 | 505 | 打轴的要求来源于vtuber字幕组的规定,字幕出现的时间与说话开始的时间一样,字幕结束的时间比说话结束的时间延后100ms-300ms,给观众缓冲时间。为了避免闪轴,前一个轴的结尾与后一个轴的开头间隔不能小于300ms(可以紧贴,即间隔为0ms),在多人轴中,如果甲说话的轴的结尾与乙说话的轴的结尾间隔小于300ms,要设置为同时结束(甲轴与乙轴结束时间一样),如果一句话语速很快,小于500ms,要延长到500ms,不然观众看不清字幕,字幕就消失了,如果是给歌曲打轴,歌词的开始时间与结束时间与唱歌开始时间与结束时间一致,歌轴不考虑闪轴 506 | 507 | 至于闪轴是什么,我只知道是字幕闪了一下的意思,具体表现我不能很明显地看出来,原理不清楚,轴间隔与轴结束为什么不能小于300ms我不知道,有没有打轴老嗨告诉我捏 508 | 509 | ### Aegisub自动化插件 510 | 511 | https://github.com/dumpling233/aegisub_Automation 512 | 513 | 把插件粘贴到Aegisub的安装目录下的这个文件夹里面 514 | 515 | 516 | 517 | ### Aegisub特效模板 518 | 519 | https://gitee.com/seekladoom/Aegisub-Karaoke-Effect-481-Templates 520 | 521 | 522 | -------------------------------------------------------------------------------- /录播.md: -------------------------------------------------------------------------------- 1 | - [b站录播](#b站录播) 2 | - [下载录播姬](#下载录播姬) 3 | - [配置录播姬](#配置录播姬) 4 | - [开始录播](#开始录播) 5 | - [光速切片](#光速切片) 6 | - [合并](#合并) 7 | - [弹幕](#弹幕) 8 | - [视频](#视频) 9 | - [看录播](#看录播) 10 | - [自动化](#自动化) 11 | - [其他b站录播工具](#其他b站录播工具) 12 | - [抖音录播](#抖音录播) 13 | - [直播源抓取](#直播源抓取) 14 | - [方法一](#方法一) 15 | - [方法二](#方法二) 16 | - [方法三](#方法三) 17 | - [方法四](#方法四) 18 | - [录播](#录播) 19 | - [PotPlayer录播(参考豆瓣帖子)](#PotPlayer录播(参考豆瓣帖子)) 20 | - [ffmpeg录播](#ffmpeg录播) 21 | - [ffmpeg自动录播工具](#ffmpeg自动录播工具) 22 | - [弹幕](#弹幕) 23 | - [西瓜录播](#西瓜录播) 24 | - [方法一](#方法一) 25 | - [方法二](#方法二) 26 | - [xml弹幕转ass弹幕](#xml弹幕转ass弹幕) 27 | 28 | ## b站录播 29 | 30 | ### 下载录播姬 31 | 32 | [录播姬官网](https://rec.danmuji.org/) 33 | 34 | [录播姬官方使用文档](https://rec.danmuji.org/docs/) 35 | 36 | 37 | 38 | ### 配置录播姬 39 | 40 | 打开后出现这个界面,选择一个**空文件夹**作为工作目录。如果不想每次打开都弹窗询问工作目录且工作目录固定,勾选不再询问 41 | 42 | 43 | 44 | 点击左侧的小齿轮图标进入设置 45 | 46 | 47 | 48 | 如果没有特殊需求,勾选保存弹幕即可,其他选项的具体含义参考[录播姬官方使用文档](https://rec.danmuji.org/docs/) 49 | 50 | 录播姬可以保存SC、舰长、礼物信息,[转换](#xml弹幕转ass弹幕)后可以播放这些信息 51 | 52 | 自动分段没有必要设置,分段越多[合并](./ffmpeg.md#拼接视频)的时候越容易出现问题。在直播唱完一首歌或者跳完一段舞蹈后可以[光速切片](#光速切片) 53 | 54 | 如果觉得原画画面太亮,不勾选默认,手动设置画质,画质ID对应的画质为 55 | 56 | > 20000-4K,10000-原画,401-蓝光(杜比) ,400-蓝光,150-高清,80-流畅 57 | 58 | 59 | 60 | 61 | 62 | ### 开始录播 63 | 64 | 点击左侧的小房子来到录播界面,复制电脑端直播间网址的链接`https://live.bilibili.com/22637261`或者房间号`22637261`,粘贴,点击确定添加房间 65 | 66 | 67 | 68 | 如果添加的房间正在直播,会自动录制,如果没有开播,刚开播的时候会自动录制,点击三个点弹出录播录制设置。可以设置是否自动录制(刚开始推流就自动录制,下播停止录制),手动开始录播,停止录播也是在这里操作的 69 | 70 | 71 | 72 | ### 光速切片 73 | 74 | 在录制的过程中点击小剪刀剪断录播(还在继续录制,手动分段,可以[合并](./ffmpeg.md#拼接视频))。在歌舞的开头和结尾各点一下,就把一段歌舞切出来了 75 | 76 | 77 | 78 | ### 合并 79 | 80 | #### 弹幕 81 | 82 | 点击左侧的工具箱,选择弹幕合并。把同一场直播需要合并的弹幕全部添加,点击合并,起个合并后弹幕文件的名字即可 83 | 84 | 85 | 86 | #### 视频 87 | 88 | [ffmpeg合并](./ffmpeg.md#拼接视频) 89 | 90 | ### 看录播 91 | 92 | 将录播视频与弹幕改为同名,放在同一个文件夹里面 93 | 94 | [下载弹弹play](http://www.dandanplay.com/),不用弹弹play也可以,PotPlayer等播放器也可以播放,不过需要把[xml弹幕转换为ass弹幕](#xml弹幕转ass弹幕) 95 | 96 | 97 | 98 | 下载对应的版本,电脑一般是64位的 99 | 100 | 101 | 102 | 点击打开视频文件,选择录播视频。如果询问是否关联弹幕文件,选择不关联,把视频和弹幕改为同名的步骤就是关联了。用弹弹play配合弹幕文件看录播与看直播的效果是完全一样的 103 | 104 | 105 | 106 | ### 自动化 107 | 108 | 我不是计科的,有能力的au可以尝试一下录播,压制弹幕,投稿和上传云盘自动化 109 | 110 | [录播姬Webhook说明,适合计科相关的au开发程序](https://rec.danmuji.org/docs/basic/webhook/) 111 | 112 | [b站自动化脚本,docker安装就能运行](https://github.com/valkjsaaa/auto-bilibili-recorder/) 113 | 114 | https://www.bilibili.com/read/cv10512059/ 115 | 116 | https://github.com/AsaChiri/DDRecorder 117 | 118 | https://github.com/CHKZL/DDTV 119 | 120 | 如果是Windows系统下自动录播和上传云盘就简单多了,网盘客户端有自动同步功能 121 | 122 | ### 其他b站录播工具 123 | 124 | 前后端分离,可以部署在服务器上,与录播姬基本功能一致,可修复因短暂网络不稳定造成的录播文件分成多个的问题 125 | 126 | https://github.com/acgnhiki/blrec 127 | 128 | ## 抖音录播 129 | 130 | #### 直播源抓取 131 | 132 | 两个方法,输入抖音直播间的分享链接(分享链接是不变的,开播才能分享)即可,房间id不知道是什么。 133 | 134 | ##### 方法一 135 | 136 | 豆u制作的[抓取网址](https://d.koishi.cc/),[豆瓣原贴](https://www.douban.com/group/topic/242570971/?_i=3699207RMhUFsw) 137 | 138 | ##### 方法二 139 | 140 | https://github.com/wbt5/real-url/blob/master/douyin.py 141 | 142 | 方法二抓到的m3u8源不是原画,需要[简单处理](https://d.koishi.cc/),flv源是原画 143 | 144 | 方法一跟方法二的抓取代码是一样的,抓取得到flv源和m3u8源,强烈建议用**flv源**,flv源默认原画,录下来就是flv格式,方便 145 | 146 | ##### 方法三 147 | 148 | 适用于网页版抓源 149 | 150 | IDM抓源,打开网页版直播间,点IDM小弹窗下载视频,下载链接就是flv源,IDM下载的弹窗里面似乎不能用Ctrl+A快捷键,用鼠标点一下链接的开头,出现光标,快捷键Shift+End,笔记本电脑的话Fn+Shift+End,选中之后就可以Ctrl+C复制链接了 151 | 152 | 153 | 154 | 抖音网页版没有登录的话在线观看选不了原画清晰度(实际网页源码里面是有原画的flv源的,见下文),所以IDM抓到的源不是原画的,但是把抓到的flv源链接最后的`_hd`去掉之后就是原画的flv源了 155 | 156 | ##### 方法四 157 | 158 | 查看网页版直播间的网页的源代码 159 | 160 | Ctrl+F查找`stream_url`,第一个就是 161 | 162 | 163 | 164 | 从steam_url开始复制三四行,粘贴到[url解码工具](http://tool.chinaz.com/tools/urlencode.aspx)中解码 165 | 166 | 167 | 168 | 169 | 170 | #### 录播 171 | 172 | 相比录播姬,用potplayer录播和用ffmpeg录播是有缺陷的,自己的网络不稳定会对录播产生影响 173 | 174 | https://www.bilibili.com/read/cv13081385 175 | 176 | ##### PotPlayer录播([参考豆瓣帖子](https://www.douban.com/group/topic/242535720/)) 177 | 178 | 打开PotPlayer,右键,打开,打开链接或者直接用Ctrl+U快捷键 179 | 180 | 181 | 182 | 复制粘贴直播源,确定 183 | 184 | 185 | 186 | 右键,视频,视频录制,保存流 187 | 188 | 189 | 190 | 选择保存的位置,选择按时间中止,时间调高点,避免自动中断录制,按开始即可。 191 | 192 | 录制的过程中可以点击全屏,保存流的界面自动隐藏,但是录制还在继续,可以边看边录,结束的时候用同样的方法打开保存流的界面,点击停止即可。 193 | 194 | 195 | 196 | ##### ffmpeg录播 197 | 198 | 代码如下,[具体操作](./ffmpeg.md) 199 | 200 | ``` 201 | ffmpeg -i url -c copy 1.flv 202 | ``` 203 | 204 | 用flv源代替url,ffmpeg录制m3u8有点问题 205 | 206 | ##### ffmpeg自动录播工具 207 | 208 | https://www.52pojie.cn/thread-1439751-1-1.html 209 | 210 | https://www.52pojie.cn/thread-1468046-1-1.html 211 | 212 | 可以像弹幕姬一样一开播就录播,操作简单 213 | 214 | #### 弹幕 215 | 216 | 抖音是分弹幕池的,不同的人看到的弹幕不一样。抖音的弹幕接口暂时没有,无法进行弹幕录制 217 | 218 | ## 西瓜录播 219 | 220 | 像上次抖音奇妙日与夜在西瓜视频也有转播,所以写一下西瓜视频怎么录播,方法跟抖音一样,抓源然后potplayer录播或者ffmpeg录播,下面讲如何抓源 221 | 222 | ### 方法一 223 | 224 | IDM抓源,切到原画清晰度再抓源,[其他细节参考](#方法三) 225 | 226 | ### 方法二 227 | 228 | 查看网页版直播间的网页的源代码 229 | 230 | Ctrl+F查找`FlvUrl`,第一个就是,把`\u002F`替换为`/`,例如`http://pull-flv-l6.ixigua.com/game/stream-109708116350205981.flv` 231 | 232 | 233 | 234 | ## xml弹幕转ass弹幕 235 | 236 | [弹幕转换及弹幕调整工具](https://github.com/hihkm/DanmakuFactory#windows) 237 | 238 | [下载最新的GUI版](https://hihkm.lanzoui.com/b01hjk83e) 239 | 240 | 241 | 242 | 如果只是简单地转换,点击打开文件,选择需要转换的xml文件,点击转换即可。如果想调整一下弹幕,比如弹幕的显示范围,弹幕密度,字体等点击设置 243 | 244 | 245 | 246 | 转换之后确认视频与ass弹幕文件同名,用PotPlayer等播放器打开就能自动识别。如果没有弹幕,右键,字幕,确认一下显示字幕的选项是否已经勾选上。 247 | 248 | 249 | 250 | 如果还是不行,右键,字幕,字幕设置,参考一下下图的设置。 251 | 252 | 253 | 254 | -------------------------------------------------------------------------------- /拓展阅读.md: -------------------------------------------------------------------------------- 1 | - [ffmpeg](#ffmpeg) 2 | - [音视频知识](#音视频知识) 3 | - [Aegisub](#Aegisub) 4 | 5 | ### ffmpeg 6 | 7 | http://www.ffmpeg.org/ffmpeg-all.html 8 | 9 | http://trac.ffmpeg.org/wiki/Encode/H.264 10 | 11 | https://developer.nvidia.com/zh-cn/blog/nvidia-ffmpeg-transcoding-guide/ 12 | 13 | https://www.nmm-hd.org/doc/X264%E4%BD%BF%E7%94%A8%E4%BB%8B%E7%BB%8D 14 | 15 | https://www.nmm-hd.org/d/index.php?title=X264%E8%A8%AD%E5%AE%9A 16 | 17 | ### 音视频知识 18 | 19 | https://vcb-s.nmm-hd.org/ 20 | 21 | https://blog.csdn.net/charleslei/article/details/53099428 22 | 23 | https://www.zhihu.com/question/20100081/answer/26246588 24 | 25 | [22楼](https://tieba.baidu.com/p/6134918942) 26 | 27 | https://tieba.baidu.com/p/3086699997 28 | 29 | https://en.wiki.hancel.org/wiki/Advanced_Video_Coding 30 | 31 | https://en.wiki.hancel.org/wiki/Interlaced_video 32 | 33 | https://en.wiki.hancel.org/wiki/YUV 34 | 35 | https://fonts.google.com/specimen/Playfair+Display?sort=popularity#standard-styles) 36 | 37 | ### Aegisub 38 | 39 | [自动化模板](https://gitee.com/seekladoom/Aegisub-Karaoke-Effect-481-Templates) 40 | 41 | [视频教程](https://www.bilibili.com/video/BV1oK411T7kL) 42 | 43 | [插件](https://github.com/dumpling233/aegisub_Automation) 44 | -------------------------------------------------------------------------------- /日语注音卡拉ok字幕.md: -------------------------------------------------------------------------------- 1 | #### 软件下载 2 | 3 | ##### 带k轴的qq音乐歌词 4 | 5 | ###### github项目链接 6 | 7 | https://github.com/MC-dusk/QRCD_M 8 | 9 | ###### 下载直链 10 | 11 | https://github.com/MC-dusk/QRCD_M/releases/download/v0.2.1/qrcd_m_v0.2.1.7z 12 | 13 | github项目链接有详细的使用方法,需要用到的歌词是og-char 14 | 15 | ##### aegisub的lua插件 16 | 17 | ###### github项目链接 18 | 19 | https://github.com/qwe7989199/Lyric-Importer-for-Aegisub 20 | 21 | ###### 下载直链 22 | 23 | https://github.com/qwe7989199/Lyric-Importer-for-Aegisub/archive/refs/heads/master.zip 24 | 25 | 根据对应的aegisub版本把文件放到aegisub对应的安装目录 26 | 27 | ##### 日语歌词自动注音软件 28 | 29 | https://www.bilibili.com/video/BV11N411Q73v/ 30 | 31 | b站up主制作的软件,简介加群下载 32 | 33 | #### 使用方法 34 | 35 | 1、用aegisub插件(安装好后插件在aegisub的自动化->Import Lyric File)导入og-char后缀的lrc歌词,用aegisub导出为ass歌词 36 | 37 | 2、把ass歌词放到b站up主的制作的`漢字注音辅助小工具(免费版)`,依次点击假名,转换,保存,把带注音的ass歌词导入aegisub 38 | 39 | 3、删除歌词自带的模板(如果有的话),在开头新建一行,把注释勾上,使用以下模板,然后应用卡拉ok模板即可 40 | 41 | ``` 42 | 特效 template syl furi 43 | 内容 {\an5\pos($center,$middle)\K!$start/10!\K$skdur} 44 | 45 | 来源:https://home.gamer.com.tw/creationDetail.php?sn=3006854 46 | ``` 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /杂篇.md: -------------------------------------------------------------------------------- 1 | - [PotPlayer配置](#PotPlayer配置) 2 | - [小丸工具箱](#小丸工具箱) 3 | - [HandBrake](#HandBrake) 4 | - [dd烤肉机](#dd烤肉机) 5 | - [ae&pr教程](#ae&pr教程) 6 | - [图片超分辨率](#图片超分辨率) 7 | - [python](#python) 8 | 9 | #### PotPlayer配置 10 | 11 | potplayer官网: 12 | 13 | https://potplayer.djj45.workers.dev/ 14 | 15 | 如果使用PotPlayer播放器,想获得更好的观看体验,需要手动配置分离器,解码器,渲染器,配置方法参考百度贴吧的[帖子](https://tieba.baidu.com/p/7171344019) 16 | 17 | #### 小丸工具箱 18 | 19 | [官网下载](https://maruko.appinn.me/),下载推荐的那个。官网链接已经炸了,这是我以前保存的 20 | 21 | https://od.djj45.workers.dev/%E8%BD%AF%E4%BB%B6/ 22 | 23 | 编码器选择如图所示,音频流选择复制,添加视频和字幕,点击压制就行,参数的设置与ffmpeg一样的,不同就是ffmpeg是一条横杆`-`,小丸工具箱是两条`--`,ffmpeg的`-c:v 5M`参数,小丸工具箱要写`--bitrate 5000`,小丸工具箱与ffmpeg使用的都是x264编码器,参数设置一样,压制的效果和时间都是一样的 24 | 25 | 26 | 27 | 小丸的2pass设置不了其他参数,只能填码率 28 | 29 | 30 | 31 | 把视频拖动到MediaInfo选项卡内或者点击选择视频,添加视频,查看视频的信息 32 | 33 | 34 | 35 | #### HandBrake 36 | 37 | 图形化软件,支持中文,与ffmpeg的用法一样,支持Windows、Mac、Linux,[官网下载](https://handbrake.fr/downloads.php) 38 | 39 | #### dd烤肉机 40 | 41 | [dd烤肉机官方教程](https://www.bilibili.com/video/BV1p5411b7o7) 42 | 43 | [下载链接](https://github.com/zhimingshenjun/DD_KaoRou2/releases) 44 | 45 | 功能有AI自动打轴,人声与背景声分离,扩4k分辨率等,我本来想试一试的,不过要装k-lite解码器(包含了LAV分离解码器等),我电脑单独下载的LAV配PotPlayer,再装k-lite会冲突,可能要重新配置一次PotPlayer,很麻烦,所以没有试 46 | 47 | dd烤肉机主要是给日V字幕组翻译用的,AI打出来的轴不如人工打轴准确,背景音乐人声比较清晰会影响打轴的准确性,打出来的轴可能要手动去调整,官方视频里面没有给出很多人一起说话时AI打轴的效果,不知道能不能识别不同人的声音 48 | 49 | #### ae&pr教程 50 | 51 | https://www.douban.com/group/topic/252380670/?_i=3698414RMhUFsw 52 | 53 | #### 图片超分辨率 54 | 55 | https://github.com/xinntao/Real-ESRGAN/blob/master/README_CN.md 56 | 57 | https://github.com/bilibili/ailab/tree/main/Real-CUGAN 58 | 59 | https://www.bilibili.com/video/av723938248 60 | 61 | #### python 62 | 63 | https://www.python.org/downloads/ 64 | 65 | 找到自己的系统,下载`3.8.10`或者`3.8.12`安装包,不要下载最新版,有些依赖模块可能没有适配 66 | 67 | 68 | 69 | 安装默认下一步就好,有个`add PATH`之类的选项,一定要勾上 70 | -------------------------------------------------------------------------------- /直播素材获取.md: -------------------------------------------------------------------------------- 1 | - [原画录播片段下载](#原画录播片段下载) 2 | - [录播整段下载](#录播整段下载) 3 | - [音乐](#音乐) 4 | - [网站合集](#网站合集) 5 | 6 | ### 原画录播片段下载 7 | 8 | [录播网站](https://asoul1.asoul-rec.com/) 9 | 10 | [片段下载介绍](https://www.douban.com/group/topic/257973065/?_i=3699751RMhUFsw) 11 | 12 | [片段下载](https://livedb.asoulfan.com/rangeDownload/index.html) 13 | 14 | ### 录播整段下载 15 | 16 | b站的源码率直播回放没了,想要录播除了自己录还可以下载别人的录播 17 | 18 | 1. [网盘版源码率录播](https://www.bilibili.com/read/cv12928332) 19 | 20 | 2. 配合[b站油猴插件](https://github.com/the1812/Bilibili-Evolved)下载[录播man](https://www.douban.com/group/topic/241493350/)的有损录播 21 | 22 | 油猴是`Tampermonkey`,在浏览器的应用商店里面搜索`Tampermonkey`安装 23 | 24 | 谷歌浏览器的应用商店打不开的话就到[这里](https://www.cxyhub.com/all/development/45/)下载 25 | 26 | 插件的用法就是b站网页版打开一个视频,点左边侧栏的第一个按钮,最后一个选项是下载视频 27 | 28 | 29 | 30 | 31 | 32 | 格式有FLV(h264)与DASH(可选h265与h264,下载后是mp4格式)可以选,h265的优点是体积小,不过A-SOUL的视频原本是h264,从h264转到h265,理论上会有一些轻微的画质损失 33 | 34 | 点击直接下载中的开始是用浏览器下载 35 | 36 | 点击导出中的显示链接,FLV是一条链接,DASH是音频与视频分开的,有两条链接,链接不能复制到IDM等下载工具下载(下文说明为什么不能用IDM等下载工具下载),只能用鼠标点击,通过浏览器下载 37 | 38 | 39 | 40 | 点击IDM,下载一个扩展名为ef2的文件,打开文件,可以看到除了下载链接与UA,还有一个referer参数,所以直接把下载链接复制粘贴到IDM等第三方下载工具是不行的,缺少referer参数是不能下载的 41 | 42 | 43 | 44 | 打开IDM,点击任务,导入,从“IDM导出文件”导入,选择刚才下载的ef2文件即可 45 | 46 | 47 | 48 | 点击aria2会下载一个txt文件,使用aria2c多线程命令行工具可以下载,具体方法不说了 49 | 50 | ffmpeg分段列表我不知道有什么用 51 | 52 | aria2 RPC是配合AriaNg使用的,先启动AriaNg,连接Aria2,再点击aria2 RPC就开始下载了,[AriaNg+Aria2懒人包下载](https://github.com/sjh0020/aria2/releases) 53 | 54 | ### 音乐 55 | 56 | https://music.163.com/#/user/home?id=61060637 57 | 58 | https://music.163.com/#/user/home?id=315928904 59 | 60 | https://music.163.com/#/user/home?id=1523034961 61 | 62 | https://t.bilibili.com/569982356787753808 63 | 64 | ### 网站 65 | 66 | asoul录音棚: 67 | 68 | https://music.a-soul.fans/ 69 | 70 | 网站合集: 71 | 72 | https://asoul.cloud/ 73 | 74 | https://asoulworld.com/ 75 | 76 | 录播导航站: 77 | 78 | https://nf.asoul-rec.com/ 79 | 80 | 录播站说明: 81 | 82 | https://gitee.com/djj45/douban1/blob/master/1.md -------------------------------------------------------------------------------- /软件和网站合集.md: -------------------------------------------------------------------------------- 1 | 需要用到的软件分散在几篇文章里面,找起来有点麻烦,所以写了软件合集。标注mac的为mac可用,不标注的仅windows可用,[mac版具体使用方法指路m1版指路](./mac.md) 2 | 3 | #### 录播 4 | 5 | ##### 录b站 6 | 7 | ###### 录播姬 8 | 9 | https://rec.danmuji.org/ 10 | 11 | ###### blrec(mac) 12 | 13 | - win 14 | 15 | https://github.com/acgnhiki/blrec/releases 16 | 17 | - mac 18 | 19 | https://github.com/acgnhiki/blrec 20 | 21 | ###### 合并录播姬和blrec剪切的录播(mac) 22 | 23 | - win 24 | 25 | https://djj45.lanzouu.com/b02oyziti 26 | 27 | 7dkd 28 | 29 | - 使用方法 30 | 31 | https://gitee.com/djj45/luboconcat 32 | 33 | - mac 34 | 35 | https://gitee.com/djj45/luboconcat 36 | 37 | ##### 录抖音 38 | 39 | ###### ffmpeg(mac) 40 | 41 | - win 42 | 43 | https://ghproxy.com/https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2022-12-05-12-37/ffmpeg-n5.1.2-8-g5746987bad-win64-gpl-5.1.zip 44 | 45 | - mac 46 | 47 | https://evermeet.cx/ffmpeg/ 48 | 49 | ###### potplayer 50 | 51 | https://potplayer.djj45.workers.dev/ 52 | 53 | ###### 自动录播(mac) 54 | 55 | mac用下载压缩包里面的源码 56 | 57 | https://www.52pojie.cn/thread-1439751-1-1.html 58 | 59 | 60 | 61 | #### xml弹幕转ass弹幕(mac) 62 | 63 | mac要自己编译,我没有编译过,不知道可不可以 64 | 65 | https://github.com/hihkm/DanmakuFactory#windows 66 | 67 | 68 | 69 | #### 压制字幕或者弹幕 70 | 71 | [ffmpeg(mac)](#ffmpeg(mac)) 72 | 73 | 74 | 75 | #### 录播粗剪 76 | 77 | losslesscut(mac) 78 | 79 | 三秒导出,只能剪关键帧 80 | 81 | https://github.com/mifi/lossless-cut/releases 82 | 83 | 84 | 85 | #### 字幕编辑 86 | 87 | ##### aegisub(mac) 88 | 89 | - win 90 | 91 | https://github.com/wangqr/Aegisub/releases 92 | 93 | - mac 94 | 95 | http://plorkyeran.com/aegisub/ 96 | 97 | ##### aegisub插件(mac) 98 | 99 | https://github.com/dumpling233/aegisub_Automation 100 | 101 | 102 | 103 | #### 语音识别字幕 104 | 105 | ##### 剪映专业版(mac) 106 | 107 | https://lv.ulikecam.com/ 108 | 109 | ##### 剪映字幕提取工具(mac) 110 | 111 | - win 112 | 113 | https://www.52pojie.cn/forum.php?mod=viewthread&tid=1564771 114 | 115 | - mac 116 | 117 | https://gitee.com/djj45/jianyingsrt 118 | 119 | 120 | 121 | #### 字体 122 | 123 | https://www.qiuziti.com/ 124 | 125 | https://www.hellofont.cn/home 126 | 127 | https://www.100font.com/ 128 | 129 | https://www.fontspace.com/ 130 | 131 | 132 | 133 | #### 歌词下载 134 | 135 | ##### 网易云音乐(mac) 136 | 137 | - win 138 | 139 | https://github.com/jitwxs/163MusicLyrics/releases 140 | 141 | - mac 142 | 143 | https://github.com/BesLyric-for-X/BesLyric-for-X/releases 144 | 145 | ##### 酷我音乐(mac) 146 | 147 | 在设置里面勾选同时下载歌词 148 | 149 | https://www.kuwo.cn/down 150 | 151 | ##### qq音乐(mac) 152 | 153 | 在设置里面勾选下载歌曲同时下载歌词 154 | 155 | https://y.qq.com/download/index.html 156 | 157 | ##### listen1(mac) 158 | 159 | https://listen1.github.io/listen1/ 160 | 161 | ##### lrc转srt(mac) 162 | 163 | - win 164 | 165 | https://djj45.lanzouu.com/b02oy6l9c 166 | 167 | 756s 168 | 169 | - mac 170 | 171 | https://github.com/djj45/lrc2srt 172 | 173 | 174 | 175 | #### 打轴教程 176 | 177 | https://www.bilibili.com/video/BV1oK411T7kL 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | -------------------------------------------------------------------------------- /音视频知识.md: -------------------------------------------------------------------------------- 1 | 这篇文章的内容整理自[字幕组的教程](https://vcb-s.nmm-hd.org/),维基百科,百度百科,CSDN,ffmpeg官方教程等 2 | 3 | - [封装格式](#封装格式) 4 | - [媒体格式](#媒体格式) 5 | - [封装格式与媒体格式简单总结](#封装格式与媒体格式简单总结) 6 | - [视频的组成](#视频的组成) 7 | - [分辨率](#分辨率) 8 | - [帧率](#帧率) 9 | - [隔行扫描与逐行扫描](#隔行扫描与逐行扫描) 10 | - [码率](#码率) 11 | - [码率的分配](#码率的分配) 12 | - [RGB模型与YUV模型](#RGB模型与YUV模型) 13 | - [色深](#色深) 14 | - [色度半采样](#色度半采样) 15 | - [音频的组成](#音频的组成) 16 | - [采样率](#采样率) 17 | - [声道](#声道) 18 | - [位深度](#位深度) 19 | - [比特率](#比特率) 20 | - [视频的播放](#视频的播放) 21 | - [分离](#分离) 22 | - [解码](#解码) 23 | - [渲染](#渲染) 24 | 25 | ### 封装格式 26 | 27 | 封装格式有MP4、MKV、FLV等。不同的封装格式类似用不同的包裹打包,包裹里面的东西叫轨道,轨道一般有视频,音频,章节和字幕。章节不常见,一般在电影的原盘里面有,见下图进度条上的标记。FLV和MP4都可以直接上传b站,录播是FLV格式,MP4与MKV相比,MKV支持封装FLAC作为音频,MP4则不支持。但是MP4也可以封装无损音轨ALAC,虽然普遍认为ALAC的效率不如FLAC优秀。另外,MKV支持封装ASS/SSA/SRT等格式的字幕,MP4可以封装SRT字幕。一般字幕组制作的字幕是ASS格式, 所以内封字幕多见于MKV格式 。内封字幕也叫软字幕,不是压制进去的,是可以分离出来的。字幕还有硬字幕和外挂字幕,硬字幕是像水印一样嵌入视频里面的,无法提取出来,外挂字幕与视频是两个分开的文件,两个文件改为同名放在同一目录下,播放器可以自动识别,也可以在播放器中手动添加外挂字幕 28 | 29 | 在PotPlayer中,鼠标指针移动到进度条上两个章节之间,点击鼠标右键,会跳转到离鼠标指针最近的左边的章节上 30 | 31 | 32 | 33 | ### 媒体格式 34 | 35 | 视频的格式(不是封装格式,是视频本身的格式)常见的有H.264(也就是AVC或者AVC1)和H.265(HEVC),音频有无损的FLAC和ALAC,有损的AAC,MP3,DTS,Opus等,无损音频跟有损音频的一个区别是无损音频有[位深度](#位深度),有损音频没有。上图中的HVC1(HEVC的一种,HEV1也是HEVC的一种)和DTS分别标明了视频和音频的格式。H/W是[硬件解码](#解码)的意思 36 | 37 | ### 封装格式与媒体格式简单总结 38 | 39 | MP4,MKV,FLV相当于包裹,里面装着H.264或者H.265格式的视频,装着AAC,MP3等格式的音频,MKV还可以装FLAC格式的无损音频和ASS,SSA格式的字幕 40 | 41 | ### 视频的组成 42 | 43 | #### 分辨率 44 | 45 | 大部分视频的宽:高=16:9,在这个比例下,720p视频的分辨率是1280\*720,1080p视频的分辨率是1920\*1080,1440p(2k)视频的分辨率是2560\*1440,2160p(4k)视频的分辨率是3840\*2160。1080p视频由横纵1920\*1080个像素组成,p指的是[逐行扫描](#[隔行扫描与逐行扫描]) 46 | 47 | #### 帧率 48 | 49 | 帧率就是每秒显示多少张图片,60帧就是每秒显示60张图片。由于人眼的视觉暂留效应,这些细微差别的图片不断变化,看起来好像画面在动一样。常见的标准帧率有24000/1001=23.976(在24000秒内显示1001张图片),大部分电影都是这个帧率,30000/1001=29.970,60000/1001=59.940等。我们常说的24帧,30帧,60帧通常指的就是四舍五入后的帧率,当然也有准确的24.000,30.000,60.000帧视频的存在。在动画制作中,一拍一指的是每秒24张图片,一拍二指的是每秒12张图片,一拍三指的是每秒8张图片,动画为了省钱常用一拍三。帧率可以是恒定的也可以是变化的,例如动画中的打斗场景,帧率比日常场景高 50 | 51 | 在PotPlayer中打开视频后,按键盘上的Tab键显示视频的信息,再按一次Tab键切换到显示视频简介,再按一次Tab键关闭视频简介。如果视频没有简介,第二次按Tab键就会关闭视频信息 52 | 53 | 原盘电影的名字包含了很多信息,如下图从左到右是影片名《天空之城》,在1986年正式上映,蓝光,分辨率高是1080个像素,[逐行扫描](#隔行扫描与逐行扫描),影片里面有4种配音(4国配音,封装到MKV格式里面,可以切换),DTS-HD.MA.5.1是音频格式,x265是视频格式,10bit是[色深](#色深) 54 | 55 | 下面一条红线标出的是[视频的格式](#媒体格式),[分辨率](#分辨率),[帧率](#帧率),[码率(PotPlayer显示的是一秒内的码率)](#码率) 56 | 57 | 再下面一条红线标出的是[音频的格式](#媒体格式),[采样率](#采样率),[声道](#声道),[位深度](#位深度),[比特率(PotPlayer显示的是一秒内的比特率)](#比特率) 58 | 59 | 60 | 61 | #### 隔行扫描与逐行扫描 62 | 63 | 一个1080i的视频,`i`表示隔行扫描,如图。 64 | 65 | 66 | 67 | > by en:user:Grayshi - [1],CC BY-SA 3.0,https://commons.wikimedia.org/w/index.php?curid=2826758 68 | 69 | 老式的电视机用的就是隔行扫描,画面看起来有横着的抖动线条的感觉。隔行扫描先显示奇数行,再显示偶数行。以前技术不够,不能在比较短的时间内扫描整个屏幕。如果是从上到下逐行扫描的话,用的时间太长了,由于显示屏阴极射线荧光的衰减,从上往下扫描的时候,上半画面的亮度低,下半画面的亮度高,从下往上扫描时则相反,这样看起来画面会严重闪烁,所以当时采用隔行扫描,隔行先扫描一半,再扫描另一半。当时拍摄也是采用隔行扫描,假设一秒拍24幅图像,编号1到24,编号为奇数的图像记录的是拍摄的原始画面的一半和一半的黑条,编号为偶数的图像同理,也就是说,相邻的两张编号一奇一偶的图片,拼接成一幅完整的没有黑条可能有点歪的图片(不是来自同一帧,画面可能在运动) 70 | 71 | 隔行扫描有很多缺点。比如播放一个画面内物体运动的视频,由于奇数场与偶数场不是来自同一帧,运动的部分会产生锯齿状线条,需要用一项叫“去交错”的技术减轻这种线条。再比如奇数场中的一根细小的横线非常接近奇数场与偶数场的交界处且一部分在奇数场另一部分在偶数场,随着画面的刷新,细横线不断出现又不断消失,看起来在抖动,需要用“低通滤波器”技术减轻,但是画面会模糊 72 | 73 | 现代显示器的刷新率大幅度提高,最低的基本都是60Hz了,采用逐行扫描画面也不会出现闪烁,视频几乎全部是逐行扫描,观看体验更好 74 | 75 | #### 码率 76 | 77 | 码率的定义是视频体积除以时间,基本单位是Kbps和Mbps。换算关系是8Kpbs=1KB/s,8Mbps=1MB/s,1000Kbps=1Mbps。一个8Mbps(8000Kbps)码率的两分钟视频(暂时忽略音频、字幕等)的大小是:8/8\*120=120MB 78 | 79 | ##### 码率的分配 80 | 81 | 码率的分配分为空间上的分配和时间上的分配 82 | 83 | 空间上的分配就是在一副画面中,细节越多,码率就要分配越多。比如拍摄,最高码率有限制,目标是清晰,拍摄背景是一面蓝色光滑的墙壁,地板上放着各种各样的东西,大部分码率肯定要分配给地板上的东西,小部分码率分配给墙壁,如果码率分配得当,画面整体看上去比较好,如果分配给墙壁的码率过高,地板上的东西就会模糊,反之亦然 84 | 85 | 时间上的分配就是帧与帧之间的复杂程度,比如拍摄,最高码率有限制,镜头不移动,背景静止,目标是清晰,拍摄一个站着不动的人需要的码率肯定比拍摄一个正在奔跑的人需要的码率低。但是因为人对运动的物体细节不太敏感,还没看清人就跑过去了,所以可以优先分配码率给静态背景。如果码率分配得当,动态静态看起来效果都好,如果大部分码率分配给动态,静态就会模糊,反之亦然 86 | 87 | #### RGB模型与YUV模型 88 | 89 | 光的三原色RGB(红绿蓝)。如RGB24模型,表示R、G、B各用8位二进制数(整数0-255)表示颜色的强弱,组成各种各样的颜色 90 | 91 | YUV模型也叫亮度-色度模型,与RGB模型之间通过[数学公式](#色深)转换。如最常见的YCbCr模型,用亮度通道(Y),蓝色色度(Cb),红色色度(Cr)表示,如下图,从上到下分别是原图,Y,Cb,Cr。 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 视频信息查看用的是[小丸工具箱](./杂篇.md#小丸工具箱)和[ffprobe](./ffmpeg.md#ffprobe的使用) 100 | 101 | 几乎所有视频用的都是YUV模型([YUV420](#色度半采样)),优点有 102 | 103 | 1. 人眼对亮度的敏感度高于色度,YUV模型绝大多数的信息位于Y通道,不像RGB模型是平均分配的,减少信息冗余量,便于压缩。假设一幅20\*20=400像素的彩色图片,RGB格式的,红绿蓝各400个数据,共1200个数据,转换为YUV格式,亮度400个数据,两个色度各100个数据,加起来600个数据,比原来缩减了一半 104 | 2. 对黑白显示设备兼容好 105 | 3. 调节亮度和颜色饱和度更方便 106 | 107 | [所有的YUV格式](https://www.fourcc.org/yuv.php) 108 | 109 | #### 色深 110 | 111 | 常见的有8bit和10bit。8bit是用8位二进制数(对应整数0-255)表示每个通道的值,10bit是用10位二进制数表示每个通道的值(对应整数0-1023)。一个8bit的显示器,播放8bit和10bit的影片是有区别的。显示器是RGB模型的,播放的时候显卡需要把YUV转换为RGB,这个过程叫[渲染](#渲染)。YUV转RGB的过程有小数的乘法运算,输入的精度越高,输出的精度同样越高 112 | 113 | ```c 114 | //RGB转YUV 115 | Y = R * 0.29900 + G * 0.58700 + B * 0.11400 116 | Cb = R * -0.16874 + G * -0.33126 + B * 0.50000 + 128 117 | Cr = R * 0.50000 + G * -0.41869 + B * -0.08131 + 128 118 | //YUV转RGB 119 | R = Y + (Cr - 128) * 1.40200 120 | G = Y + (Cb - 128) * -0.34414 + (Cr - 128) * -0.71414 121 | B = Y + (Cb - 128) * 1.77200 122 | ``` 123 | 124 | #### 色度半采样 125 | 126 | YUV420的意思是Y保留全部,U和V记录的时候宽和高缩小二分之一,相当于每一个像素都采集一个Y值,四个相邻的像素(`田`)分别采集一个UV值。比如一个1080p的视频,亮度平面的分辨率是1920\*1080,两个色度平面的分辨率是960\*540。播放的时候先把UV平面的分辨率拉到和Y平面一样,再进行YUV转RGB,在显示器上输出图像 127 | 128 | YUV420有YUV420p和YUV420sp两种。如果不加特别说明,YUV420指的就是YUV420p。YUV420,可分为I420,J420,YV12,YUV420sp可分为NV12和NV21,它们之间最根本的区别就是储存数据中Y,U,V的排列顺序和排列方式不同 129 | 130 | ### 音频的组成 131 | 132 | #### 采样率 133 | 134 | 常见的采样率有44.1KHz(音乐)和48KHz(电影)等。人耳可以听到的频率是20-20000Hz,为什么采样率是人耳极限听力频率的两倍多呢?实际上,44.1KHz采样率记录的声音频率范围是0-22050Hz,48KHz采样率记录的声音频率范围是0-24KHz,因为奈奎斯特-香农采样定理,采样率要大于等于实际频率的两倍信号才不会失真 135 | 136 | 下图可以看到,当采样率小于原频率的两倍时,会发生混叠,波形改变了,声音失真。 137 | 138 | 139 | 140 | #### 声道 141 | 142 | 声道是指声音在录制或播放时在不同空间位置采集或播放的相互独立的音频信号,所以声道数也就是声音录制时的音源数量或播放时相应的扬声器数量。有单声道,双声道,5.1声道,7.1声道等 143 | 144 | #### 位深度 145 | 146 | 位深度也叫采样位深,专业音频领域里面最低的位深度标准是16bit。位深度仅对于PCM数字信号才有意义,非PCM格式,例如有损压缩格式(压缩后数据部分丢失,不能还原回未压缩的数据),没有固定的位深度标准。1比特的位深度可以记录6.02($20lg2$)分贝的声音,16位大概记录96分贝的声音,把一段声音的最高分贝定为0分贝,记录值就是-96-0 147 | 148 | #### 比特率 149 | 150 | 比特率也叫位速,码率。有损格式(如MP3,AAC)常见的比特率有128Kbps,192Kbps,320Kbps,无损音乐(如FLAC)比特率一般在700Kbps以上 151 | 152 | ### 视频的播放 153 | 154 | 视频的播放效果与原视频,播放器,显示器有关 155 | 156 | #### 分离 157 | 158 | 将需要播放的封装格式和有关的文件(外挂字幕、外挂音轨等)分成单独的视频流,音频流,字幕,章节信息等。负责分离的部分叫分离器,分离几乎不消耗性能 159 | 160 | #### 解码 161 | 162 | 将压缩的视频格式H.264,H.265,压缩的音频格式FLAC,AAC等转换为未压缩的格式。视频大部分都是YUV420,所以视频解码为YUV,当然极其少见的视频也有RGB的,解码为RGB,音频转换为PCM(相当于波形)。用CPU解码叫软解,用显卡解码叫硬解,硬解用的不是显卡的流处理器,而是一个独立的单元,硬件加速编码也是用独立的单元 163 | 164 | #### 渲染 165 | 166 | 将解码后的数据在显示器扬声器播放的过程叫渲染,YUV转RGB绝大多数情况是在渲染这一步完成的。如果视频的分辨率与显示器的分辨率不一致,缩放也是在渲染这步完成的,通过算法缩放到与显示器的分辨率一致再输出到显示器 --------------------------------------------------------------------------------