tangshimin / typing-learner

使用电影、美剧、字幕或文档生成词库(单词本),让每个单词都有具体的语境。然后通过语境记忆单词。
GNU General Public License v3.0
895 stars 57 forks source link

关于mkv格式的一些想法 #9

Closed libregd closed 2 years ago

libregd commented 2 years ago

这个感觉每个文件都比较大,但是格式是合理的,因为只下srt的话,没有天然发音的音频效果大打折扣,我对本款软件的期待是英语学习软件。 但是也有一点新问题:

  1. mkv 涉及到torrent种子的使用和一些找种经验,比如去哪里可以找到高质量的torrent? 我个人一直是流媒体,所以不是很清楚怎么解决这个问题。包括在工具的使用上,陷入了选择困难症。也没下成功,导致没体验上这个功能。(同时,作为GPL-协议的应用,是否有尽量使用同为GPL的torrent/下载 软件?但是用啥最合适?选择困难症更严重了)
  2. 我感觉桌面版一大优势就是字幕听写,那么听写什么材料,哪些材料适合啥水平,有个入门指导md文件也不错…… 您觉得呢?

mkv 格式会导致听写内容的受限

  1. 以我个人为例,听写材料大部分是找不到对应的mkv的(因为这个格式和下载的方式和字幕组是强绑定),字幕组基本翻译影视作品,那么内容就是电视剧/ 影视剧,而且会有挑选性,这种挑选性跟英语用词水平无关,而是和剧情内容 强绑定,那么对于我这样的目的性极强的英语学习者,会耗费较大的时间在材料的挑选上 :毕竟只有适合当前水平的材料才是有效的学习材料 ,或者说,对于系统性的进步来说,材料的选择是非常重要的。
  2. 以及mkv格式在某些好材料领域是比较落后的,搜“ TED mkv” 能出来的材料是2012年的,而现在是2022年。
  3. 我目前基本上都是直接去搜youtube/bilibili 根据 关键词直接检索符合当前水平的系统材料跟着学就行,那么考虑字幕从youtube的拉取,毕竟无论自动生成的还是提供方自行精校后的都是准确率非常高的(特别是针对英语学习者的视频,本身就会要求发音清晰)。downsub youtube to mp3

    附加的需求可能就是字幕精调的问题,artime这款我个人用来加字幕还挺好

那么需求就变成了,希望可以多两个点:

tangshimin commented 2 years ago

下载 TED 演讲,可以使用 youtube-dl 从 YouTube 下载 最新演讲的 mkv 格式视频,好像在 YouTube 上有字幕的视频下载下来的格式就是 MKV 格式的。

我明天写一个教程,从 YouTube 下载 MKV 格式的视频。

tangshimin commented 2 years ago

你想要加一个听写功能?在抄写的基础上加一个听写也挺简单的。

tangshimin commented 2 years ago

从 TED 官网(没有被封锁)下载的 MP4 文件就封装了很多种语言的字幕,可以写一个工具把 MP4 转换成 MKV ,或者写一个教程教用户使用 FFmpeg 把 MP4 转换成 MKV。

libregd commented 2 years ago

show all format video about that youtube url

# successful
youtube-dl -F --proxy socks5://127.0.0.1:[port] https://www.youtube.com/watch?v=eIho2S0ZahI

only webm andmp4 ,deleted -F could download the file that default format is mp4

download but sametime recode it to mkv format

// failed, mp4 too. 
youtube-dl --recode-video mkv --proxy socks5://127.0.0.1:[prot] https://www.youtube.com/watch?v=eIho2S0ZahI

show all own subtitles format

# successful
youtube-dl --list-subs --proxy socks5://127.0.0.1:[port] https://www.youtube.com/watch?v=eIho2S0ZahI

only support vtt, ttml, srv3, srv2, srv1 format, unfortunately, not srt/ass format,

add --white-sub to download subtitles that add--sub-lang zh-CN,en to choose Chinese and English

# successful
youtube-dl --write-sub --sub-lang zh-CN,en --proxy socks5://127.0.0.1:[port] https://www.youtube.com/watch?v=eIho2S0ZahI

change vtt to srt

# successful. 
ffmpeg -i Treasure-eIho2S0ZahI.en.vtt Treasure-eIho2S0ZahI.en.srt
# simply
ffmpeg -i input.vtt output.srt

use youtube-dl download video from TED.com

# failed
 youtube-dl https://www.ted.com/talks/allyson_felix_an_olympic_champion_s_mindset_for_overcoming_fear

ERROR: Unable to extract info json; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

use ffmpeg extract sub from mp4 that download on TED.com ,

# successful
ffmpeg -i 2022-allyson-felix-001-5000k.mp4 infile.srt

use ffmpeg change mp4 to mkv

# failed
ffmpeg -i 2022-allyson-felix-001-5000k.mp4 -i infile.srt -c copy -c:s mov_text 2022-allyson-felix-001-5000k.mkv
tangshimin commented 2 years ago

下载 YouTube 视频使用这个命令,会下载英语字幕(会把字幕转换成 srt), 和MKV 封装格式的视频(里面没有字幕) youtube-dl.exe --sub-lang en --convert-subs srt --write-sub URL 把字幕和视频合并到一个 MKV 文件 ffmpeg -i video.mkv -i en.srt -c copy output.mkv

提取 TED MP4 文件里的英语字幕 ffmpeg -i video.mp4 en.srt

使用 FFmpeg 合并从 TED 官网下载的视频和从视频提取出来的字幕和使用这个命令, ffmpeg -i video.mp4 -i en.srt output.mkv 暂时不推荐使用这个命令合并 从 TED 官网下载的视频,因为 TED 的 MP4 文件里有 ASS 字幕,现在程序有一个 bug (正在想办法解决),只要 MKV 文件里有 ASS 字幕程序就会崩溃。可以先从 YouTube 下载 TED 视频,等修复了bug,再从官网下载。

libregd commented 2 years ago

根据上面的前面两个命令解决了, 没有mkv的话用后面两个命令也能逐步获得。不愧是专业的。 image

然后是如图的新问题, 当按Ctrl+Shift+Z的时候会播放语音,我是4k,27寸显示屏, win10系统仅设置了125%的放大率,这个截图是长度完全就是显示屏的长度。

看软件的话,已经从最下方的滚动条看得出来是一个比较能够展示全部内容的窗口宽度。

但是同时,又会播放一下视频,但是这个视频又是一个相对于软件窗口的绝对定位,不能我鼠标移动给他挪一个位置固定(类似web视频小窗口)也就是说,我必须把软件放到屏幕左边才能看到视频,如果我把软件挪到右边,那么这个视频就会消失,所以我不是很懂到底是想不想让我看视频.....

tangshimin commented 2 years ago

视频播放器应该在播放按钮的右侧,这是一个 bug。

Snipaste7

tangshimin commented 2 years ago
tangshimin commented 2 years ago
tangshimin commented 2 years ago

视频播放的快捷键不好改,从 MKV 生成的词库,每个单词最多匹配 3 条字幕,这 3 条字幕的播放快捷键 分别是 Ctrl+Shift+ZCtrl+Shift+XCtrl+Shift+C, 如果要改抄写字幕的快捷键,记忆单词的快捷键可能也要跟着改。

tangshimin commented 2 years ago

关于视频播放只播放一小段,你找一部电影,先看一遍,再试着抄写,就能感觉到继续播放视频是不必要的。 对于 TED 这里知识密集型的视频,可以加一个鼠标检测,如果有鼠标在视频播放器里面,就继续播放,没有就停止。

libregd commented 2 years ago

https://github.com/tangshimin/qwerty-learner-desktop/issues/9#issuecomment-1125301539: 这一点赞同,没有必要做检测,我一开始还以为你是抽取了音频直接播放,没想到还做了片段展示,是好功能👍

libregd commented 2 years ago

https://github.com/tangshimin/qwerty-learner-desktop/issues/9#issuecomment-1125290836: 我用欧路词典搜了一下,小写的连续两个dd,ss,tt,rr,gg,hh,jj,是没有英文单词的。不太严格的话,vv 也没有。这些在键盘输入检测同时录入就有一定的检测可行性了.....

F1-F12 为啥不能用呢?web端我能理解,因为F5直接一波刷新,F10-F12 唤起 inspect,桌面版也有这样的困境?

tangshimin commented 2 years ago

快捷键 F1 - F12, 我很少用,最近才开始频繁使用 F1 截图。或许可以把视频播放的快捷键改成 Ctrl + BCtrl + NCtrl + M, 键盘音效快捷键要改,速度快捷键也要改。击键音效的快捷键使用频率很低,改的话影响不会很大。

tangshimin commented 2 years ago

image

把缩放改成 100% 播放器就会回到播放按钮右侧

tangshimin commented 2 years ago

如果缩放不是 100% ,记忆单词界面的视频播放器的位置和大小也会出问题。

libregd commented 2 years ago

https://github.com/tangshimin/qwerty-learner-desktop/issues/9#issuecomment-1125610407:

那这个不是问题,27寸用100% 对于健康坐姿来说有点小,不可能因为一个应用就改全部哈。现在这样也行,我能听就可以。

libregd commented 2 years ago

https://github.com/tangshimin/qwerty-learner-desktop/issues/9#issuecomment-1125578635:

这个倒不是我个人习惯用F1-F12 , 我截图、更改系统音量都是鼠标点点点。而是需要配合2-3个按键来触发一次短暂的1s-2s左右的音频播放,操作成本上太高了,这是一个非常高频的操作。

能用一个按键解决是最合理的。哪怕这个按键稍微有一点点远,我一开始设想的是数字键,这样往上扒拉一下4-9 是最好摁的。但是字幕可能录入的时候会有输入 比如 $.6456 ,就没提。

tangshimin commented 2 years ago

Ctrl + J 这个快捷键就挺好的,使用频率最高,B、N、M 距离 J 很近。

tangshimin commented 2 years ago
tangshimin commented 2 years ago

现在可以支持抄写文本和 mp3 + 字幕了