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
只是改变了视频的容器,视频编码等没有任何改变,所以速度非常快,通常只需要几秒钟。
一般就这三个格式问题,转换后都可以播放了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.