百科
[!IMPORTANT]
MP4
和MKV
是多媒体容器格式
视频编码格式
格式 | 别名 | 时间 | 授权 |
---|---|---|---|
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