ffmpeg 编码的 mp4 无法在 safari 中播放,但在 chrome 和 ff 中可以播放

ffmpeg 编码的 mp4 无法在 safari 中播放,但在 chrome 和 ff 中可以播放

正如标题所述,我正在用 ffmpeg 编码视频,它在 chrome 和 ff 中播放正常,但在 safari 中播放不正常。有人知道原因吗,该尝试什么,等等?

我听从了此主题无济于事。

ffmpeg 命令:

ffmpeg -f lavfi -i color=$1 -i $2 -vcodec libx264 -pix_fmt yuv420p -filter_complex "[0:v][1:v]scale2ref[c][v];[c][v]overlay=shortest=1[j];[j]scale=134:80" $3_120-3x.mp4

大部分内容只是为具有 alpha 透明度的视频添加背景颜色。该-vcodec libx264 -pix_fmt yuv420p部分似乎是最重要的(顺便说一句,如果没有它,它也无法在 FF 中播放)。

的结果ffprobe

ffprobe version 3.2.4 Copyright (c) 2007-2017 the FFmpeg developers
  built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/3.2.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --disable-lzma --enable-vda
  libavutil      55. 34.101 / 55. 34.101
  libavcodec     57. 64.101 / 57. 64.101
  libavformat    57. 56.101 / 57. 56.101
  libavdevice    57.  1.100 / 57.  1.100
  libavfilter     6. 65.100 /  6. 65.100
  libavresample   3.  1.  0 /  3.  1.  0
  libswscale      4.  2.100 /  4.  2.100
  libswresample   2.  3.100 /  2.  3.100
  libpostproc    54.  1.100 / 54.  1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'alarm_clock_120-3x.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.56.101
  Duration: 00:00:05.96, start: 0.000000, bitrate: 144 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 600x360 [SAR 1:1 DAR 5:3], 140 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler

也无法在移动版 Chrome/Safari 上播放

答案1

正如@Gyan 在评论中所说,-profile:v main这对 Safari 来说显然很重要。

刚刚添加,-pix_fmt yuv420p让 Firefox 中的功能正常运行。Firefox 似乎也更关心视频是否在同一个域中。

这两个显然是最后的模糊部分。

相关内容