![ffmpeg 编码的 mp4 无法在 safari 中播放,但在 chrome 和 ff 中可以播放](https://linux22.com/image/1527711/ffmpeg%20%E7%BC%96%E7%A0%81%E7%9A%84%20mp4%20%E6%97%A0%E6%B3%95%E5%9C%A8%20safari%20%E4%B8%AD%E6%92%AD%E6%94%BE%EF%BC%8C%E4%BD%86%E5%9C%A8%20chrome%20%E5%92%8C%20ff%20%E4%B8%AD%E5%8F%AF%E4%BB%A5%E6%92%AD%E6%94%BE.png)
正如标题所述,我正在用 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 似乎也更关心视频是否在同一个域中。
这两个显然是最后的模糊部分。