使用ffmpeg进行原盘无损Remux
仅限于BDMV格式的原盘,ISO的需要挂载,挂载后的也可以这样操作
首先获取要提取的目标m2ts
ls -alh 目标STEAM目录
体积最大的那个文件,就是目标文件
比如:
通过上面的图可以看到,00009.m2ts 应该是我们要找的目标文件
使用ffmpeg 查看视频信息
这一步的目的就是排除不想要的轨道
比如2160p的视频原盘,可能含有1080p的分轨,但是我们只想要2160p的轨道,就需要知道1080p的轨道编号,排除掉它
ffmpeg -i 目录/BDMV/STREAM/xxxx.m2ts
上面的例子就是ffmepg -i The.Deep.House.2021.2160p.UHD.Blu-ray.HEVC.Atmos.TrueHD7.1-DiY@HDHome/BDMV/STREAM/00009.m2ts
输出:
我们发现有一个1080p的视频轨道,编号为1,后面提取视频的时候要排除这个轨道
提取视频
如果直接复制为mkv格式,那么使用:
ffmpeg -i 目录/BDMV/STREAM/xxx.m2ts -map 0 -c copy output.mkv
-map 0 -c copy 相当于 -map 0 -c:v copy -c:a copy -c:s copy
这种情况适合全部复制
排除视频轨道
上面的例子中,要排除掉编号为1的轨道,需要使用命令:
ffmpeg -i 目录/BDMV/STREAM/xxx.m2ts -map 0 -map -0:v:1 -c copy output.mkv
-map -0:v:1
这里就是排除编号为1的轨道,如果要排除多个轨道,那么就写多次这个组合。
比如排除序号为1和2的轨道:
-map -0:v:1 -map -0:v:2。
-c copy
就是仅复制,不做编码,此时是无损的
上面的例子具体的输出就是:
ffmepg -i The.Deep.House.2021.2160p.UHD.Blu-ray.HEVC.Atmos.TrueHD7.1-DiY@HDHome/BDMV/STREAM/00009.m2ts -map 0 -map -0:v:1 -c copy The.Deep.House.2021.2160p.UHD.Blu-ray.HEVC.Atmos.TrueHD7.1-DiY@HDHome.mkv
排除音频轨道
a 就是audio
-map -0:a:1
就是排除音频轨道中的index=1的轨道
排除字幕轨道
s 就是subtile
-map -0:s:1
就是排除字幕轨道道中的index=1的轨道
对某个音频进行编码
-map 0 -c:v copy -c:a copy -c:a:2 pcm_s16le -c:s copy
这里就是对 index=2的音频进行编码,对多个进行编码就多加几个
当目标是iso的时候
sudo mount -o loop /path/to/your.iso /你的路径
进行remux之后,要卸载iso文件
sudo umount /你的路径
多个mkv文件合并成一个mkv
比如:创建一个file.txt文件,其中按照顺序包含文件的分part:
file '1.mkv'
file '2.mkv'
file '3.mkv'
然后使用ffmpeg命令合并即可:
ffmpeg -f concat -i file.txt -map 0 -c copy xxxx.mkv