aF3zZCNbVLwn5RFN
V2EX  ›  macOS

用 ffmpeg 转换 mkv, QuickTime 播放 HDR 视频

  •  1
     
  •   aF3zZCNbVLwn5RFN · Aug 23, 2022 · 1881 views
    This topic created in 1392 days ago, the information mentioned may be changed or developed.

    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
    

    只是改变了视频的容器,视频编码等没有任何改变,所以速度非常快,通常只需要几秒钟。
    一般就这三个格式问题,转换后都可以播放了。

    2 replies    2022-08-25 09:08:49 +08:00
    aero99
        1
    aero99  
       Aug 24, 2022
    只是改变了视频的容器,视频编码等没有任何改变,这一点超赞
    我想改成 win 上的批处理 bat ,目录里面的 ts 转换成 mp4 ,定时运行,不知能否实现
    aF3zZCNbVLwn5RFN
        2
    aF3zZCNbVLwn5RFN  
    OP
       Aug 25, 2022
    应该是可以的。不过有可能 ts 里的视频不是 H.264 编码,需要用 ffprobe 查看一下。不用转换的话,ffmpeg 的 -c copy 就只是换容器。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3354 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 11:39 · PVG 19:39 · LAX 04:39 · JFK 07:39
    ♥ Do have faith in what you're doing.