Mac 上用 QuickTime 播放 HDR 视频,不用担心色彩不准等问题。
aria2 下载视频之后,可以自动运行一个 ffmpeg 的 script ,把 mkv 转换成 mp4 ,这样 QuickTime 就可以播放了。
#!/bin/sh
for f in /Users/username/Downloads/Media/*.mkv
do
# 用 ffprobe 读取源文件的视频,音频,字幕编码
v_codec=$(/opt/homebrew/bin/ffprobe -v quiet -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 "$f")
a_codec=$(/opt/homebrew/bin/ffprobe -v quiet -select_streams a:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 "$f")
s_codec=$(/opt/homebrew/bin/ffprobe -v quiet -select_streams s:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 "$f")
# QuickTime 播放 HEVC 视频必须得有个 tag: hvc1
[ $v_codec = "hevc" ] && v="-c:v copy -tag:v hvc1" || v="-c:v copy"
# QuickTime 不支持 DTS 音频,转换成 alac 格式
[ $a_codec = "dts" ] && a="-c:a alac" || a="-c:a copy"
# hdmv_pgs_subtitle 其实是图片,而 mp4 不支持 PGS 字幕,只能去除
# 可以用 OCR 转换成 SRT ,但是 ffmpeg 不支持 OCR
[ $s_codec = "hdmv_pgs_subtitle" ] && s="-sn" || s="-c:s mov_text"
eval "/opt/homebrew/bin/ffmpeg -v error -i ${f} -map 0 ${v} ${a} ${s} ${f%.mkv}.mp4"
# 删除原 mkv 文件
rm -f "$f"
done
只是改变了视频的容器,视频编码等没有任何改变,所以速度非常快,通常只需要几秒钟。
一般就这三个格式问题,转换后都可以播放了。
1
aero99 2022-08-24 11:26:38 +08:00
只是改变了视频的容器,视频编码等没有任何改变,这一点超赞
我想改成 win 上的批处理 bat ,目录里面的 ts 转换成 mp4 ,定时运行,不知能否实现 |
2
aF3zZCNbVLwn5RFN OP 应该是可以的。不过有可能 ts 里的视频不是 H.264 编码,需要用 ffprobe 查看一下。不用转换的话,ffmpeg 的 -c copy 就只是换容器。
|