百科

[!IMPORTANT]

MP4MKV 是多媒体容器格式

视频编码格式

格式 别名 时间 授权
H.264 MPEG-4 Part 10 / MPEG-4 AVC 2003 付费
H.265 MPEG-H Part 2 / HEVC 2013 付费
VP9 2012 免费
AV1 2018 免费

音频编码格式

格式 全称 无损 时间
MP3 MPEG-2 Audio Layer III 有损 1995
aac Advanced Audio Coding 有损 1997
alac Apple Lossless Audio Codec 无损 2004
flac Free Lossless Audio Codec 无损 2001

H.264:一种视频编码格式。

H.265:H.264 的继任者,有更高的视频压缩效率。

VP9:谷歌开发用于规避 h.264 h.265 授权的编码格式。

AV1:VP9 的继任者,H.265 的免版税竞争者,极大地基于 VP9 的技术。

#! /bin/bash

for file in EP*;do
    echo $file;
    echo new.$file
    ffmpeg \
        -i $file \
        -vf "scale=1280:960:flags=lanczos,setsar=1/1" \
        -f mp4 \
        -c:v libx265 -crf:v 23.0 -preset:v medium -tune:v ssim -fps_mode cfr \
        -c:a copy \
        -sn -map_metadata -1 -map_chapters -1 \
        new.$file
done;





#    ffmpeg \
#        -ss 00:00:00 \
#        -i Saving-Private-Ryan_拯救大兵瑞恩_1998_2160P_Remux.mkv \
#        -c:v libx265 -crf:v 30.0 -preset:v veryfast -tune:v ssim -fps_mode cfr \
#        -c:a copy \
#        -c:s copy \
#        -map 0 \
#        -sn -map_metadata -1 -map_chapters -1 \
#        -t 00:01:00 \
#        4444.mkv
#        
#        
#        -f mkv \
#        
#        -c:v libx265 -crf:v 23.0 -preset:v medium -tune:v ssim -fps_mode cfr \
#        -vf "scale=1280:960:flags=lanczos,setsar=1/1" \

批量编辑mkv文件元数据

快-不会重写文件

#!/bin/bash
for file in *.mkv; do
	echo "开始 $file"

	mkvpropedit "$file" \
		--edit info --set "title="  \
		--edit track:v1 --set language=ja --set "name=" \
		--edit track:a1 --set language=zh --set "name=国语" --set flag-default=0 \
		--edit track:a2 --set language=zh --set "name=粤语" --set flag-default=0 \
        --edit track:a3 --set language=ja --set "name=日语" --set flag-default=1
done

批量编辑输出不带 字幕 和 章节 信息的mkv文件

慢-会重写文件

#!/bin/bash
for file in *.mkv; do
	echo "开始 $file"
	
	output="${file%.mkv}.cleaned.mkv"
	mkvmerge -o "$output" --no-subtitles --no-chapters "$file"

done

批量导出MKV中的字幕文件

字幕格式只能自己判断

快-只是提取

#!/bin/bash
for file in *.mkv; do
	echo "开始 $file"
	
	output="${file%.mkv}.ass"
	mkvextract tracks "$file" "4:$output"
done

导出视频流(无损)

如果视频流是 mpeg-4 格式的话

ffmpeg -i input.mkv -c copy output.mp4

mp4添加封面

ffmpeg -i input.mp4 -i cover.jpg -map 0 -map 1 -c copy -disposition:v:1 attached_pic output.mp4