mkv 如何批量音画分离?

2022-01-17 09:21:24 +08:00
 nbweb

有一些老歌,卡拉 ok 里面的,画质不怎么好,800 多首,想把音画分离了只听歌,哪位大吊有办法?

下载地址: https://hdtime.org/details.php?id=25425&hit=1

如果没有账号的,留下邮箱,我有 5 个邀请名额。玩过 pt 站的优先。

如果哪位大神搞定了,可以传个磁力链接上来,分享给大家,不胜感激。

1843 次点击
所在节点    问与答
24 条回复
ghjexxka
2022-01-17 09:33:19 +08:00
mkvtoolnix 应该可以
gtchan13579
2022-01-17 09:42:15 +08:00
base64:Z3RjaGFuQG91dGxvb2suY29t
nbweb
2022-01-17 09:54:44 +08:00
@gtchan13579 邀请代码已发送!请查收一下邮件。
Chihaya0824
2022-01-17 09:57:29 +08:00
直接 ffmpeg
ffmpeg -i sample.mkv -q:a 0 -map a sample.mp3
然后根据你的 os 写个 powershell/bash 脚本直接处理整个目录的文件就可以了,比如 mac
for i in *.mkv; do ffmpeg -i "$i" -q:a 0 -map a "${i%.*}.mp3"; done
但是如果想要同时并行处理多个文件可能就需要思考一下了
ysc3839
2022-01-17 10:10:43 +08:00
xmumiffy
2022-01-17 10:14:09 +08:00
@Chihaya0824 并行会把硬盘卡死的😂
johnwood
2022-01-17 10:20:52 +08:00
你好 eHl1aXNtZUBvdXRsb29rLmNvbQ==
Chihaya0824
2022-01-17 10:23:58 +08:00
@ysc3839 确实,我的意思是判断比如说同时运行几个比较好(比如说用$(nproc)去判断核数),怎么等待某一个 process 运行完成了然后安排下一个之类的,要花点时间写的意思 2333

@xmumiffy 会吗_(:з)∠)_,我没试过。。
xmumiffy
2022-01-17 10:26:18 +08:00
@Chihaya0824 哦 如果有 mp3 编码是好一点 我用的-c:a copy 瓶颈在磁盘读写上
nbweb
2022-01-17 10:29:56 +08:00
@johnwood 邀请已发送,请及时注册。
thefack
2022-01-17 10:47:46 +08:00
谢谢,ZG9uZXdAZm94bWFpbC5jb20=
nbweb
2022-01-17 10:52:57 +08:00
@Chihaya0824 感谢,测试了一下,成功了,但是只能把音频分离成 mka ,后面还要用 ffmpeg 转换一下吧,把 mka 转成 wav
nbweb
2022-01-17 10:54:00 +08:00
@thefack 邀请已发放,请及时注册。
SCGabriel
2022-01-17 11:43:59 +08:00
#########bash 脚本####转换成 wav######
#!/bin/bash
IFS_BAK=$IFS
IFS=$'\n'
for video in `find . -type f -name "*.mkv"`
do
audiooutput="$(echo "$video" | sed "s/.mkv$/.wav/")"
ffmpeg -i "$video" -map 0:a:0 -acodec pcm_s16le -ac 2 -ar 44100 "$audiooutput"
done
IFS=$IFS_BAK

################end################
咱刚刚写的,测试了下可行,bash 脚本
nbweb
2022-01-17 11:48:35 +08:00
@SCGabriel 66666 ,有空测试一下,转好了就分享上来给大家。
SCGabriel
2022-01-17 12:02:23 +08:00
@nbweb 咱 linux 系统测试的,这个脚本是自动查找当前执行脚本的这个文件夹以及子文件夹里所有的 mkv ,然后提取音频转换成 wav 。
需要提前安装 ffmpeg
nbweb
2022-01-17 12:27:45 +08:00
@SCGabriel 在 debian 里测试成功了,感谢。奇怪了,转出来的 wav 比 mvk 还大。
Howlaind
2022-01-17 12:59:57 +08:00
@Chihaya0824 PowerShell 7.0 后的 ForEach-Object 里有个 Parallel 参数,打开就直接并行处理循环了。
xinyueruhuo
2022-01-17 18:22:25 +08:00
pcm_s16le 编码器出来的是 pcm 数据,未压缩的,可以转个 mp3
sapphires
2022-01-17 18:34:53 +08:00
base64:MTUwMDM1MDIwNEBxcS5jb20= 我来试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/828647

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX