gpt4 book ai didi

video - webM 文件在移动设备上显示绿色和紫色效果

转载 作者:行者123 更新时间:2023-12-04 23:29:06 27 4
gpt4 key购买 nike

我已经转换了几个 GIFswebM使用 ffmpeg 的文件在我的 Ubuntu 14.04 服务器上。

这是我用于对话的代码。

ffmpeg -i your_gif.gif -c:v libvpx -crf 12 -b:v 500K output.webm

来源 https://gist.github.com/ndarville/10010916

问题是转换后的 webM 文件在 PC 上显示非常好,但在我的手机上显示绿色和紫色阴影。

个人电脑

pc

移动的

mobile

我尝试更改 -crf-b:v值达到最大值,但没有任何 react 。

webM 文件: http://d1pnsuxwa0it39.cloudfront.net/uploads/comments/webm/4673555.webm

编辑:

我也可以在其他一些网站上看到 webM 文件。我认为这与我转换文件的方式有关。

编辑:

我尝试了在 stackoverflow 上找到的另一个代码,但仍然相同。
ffmpeg -f gif -i infile.gif outfile.mp4

编辑:

如果有人认为这与我安装 FFMPEG 的方式有关,我按照 FFMPEG 官方文档中的步骤进行操作。
https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

编辑:

输入文件:
http://d1pnsuxwa0it39.cloudfront.net/test/1.gif

输出文件:
http://d1pnsuxwa0it39.cloudfront.net/test/output.webm

FFMPEG CLI 输出
 /home/naveencg/bin/ffmpeg -i 1.gif -c:v libvpx -crf 12 -b:v 500K output.webm
ffmpeg version 2.5.git Copyright (c) 2000-2014 the FFmpeg developers
built on Dec 31 2014 14:37:15 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
configuration: --prefix=/home/naveencg/ffmpeg_build --extra-cflags=-I/home/naveencg/ffmpeg_build/include --extra-ldflags=-L/home/naveencg/ffmpeg_build/lib --bindir=/home/naveencg/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree
libavutil 54. 15.100 / 54. 15.100
libavcodec 56. 19.100 / 56. 19.100
libavformat 56. 16.102 / 56. 16.102
libavdevice 56. 3.100 / 56. 3.100
libavfilter 5. 6.100 / 5. 6.100
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, gif, from '1.gif':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: gif, bgra, 350x169, 25 fps, 25 tbr, 100 tbn, 100 tbc
[libvpx @ 0x1e2bf60] v1.3.0
Output #0, webm, to 'output.webm':
Metadata:
encoder : Lavf56.16.102
Stream #0:0: Video: vp8 (libvpx), yuva420p, 350x169, q=-1--1, 500 kb/s, 25 fps, 1k tbn, 25 tbc
Metadata:
encoder : Lavc56.19.100 libvpx
Stream mapping:
Stream #0:0 -> #0:0 (gif (native) -> vp8 (libvpx))
Press [q] to stop, [?] for help
frame= 21 fps=0.0 q=0.0 size= 58kB time=00:00:00.84 bitrate= 569.7kbits/sframe= 44 fps= 41 q=0.0 size= 110kB time=00:00:01.76 bitrate= 512.4kbits/sframe= 62 fps= 39 q=0.0 size= 153kB time=00:00:02.48 bitrate= 505.9kbits/sframe= 84 fps= 40 q=0.0 size= 210kB time=00:00:03.36 bitrate= 510.8kbits/sframe= 88 fps= 41 q=0.0 Lsize= 218kB time=00:00:03.52 bitrate= 508.3kbits/s
video:216kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.971527%

最佳答案

我测试了你的 webm video在我的 Android 4.1.1 平板电脑的 5 个浏览器中,除了异常(exception)的 Firefox 之外,我在所有浏览器中都遇到了您问题中提到的相同行为。测试中使用的浏览器:Chrome 39、Dolphin 11、Firefox 34、Opera 26 和 UC Browser 10。

我测试了你的 gif 和不同的视频格式,在很多情况下我得到了相同的行为,这就是为什么
我认为您的问题中提到的行为不是将 gif 转换为 webm 的特殊问题,但它与浏览器(至少 5 个经过测试的 android 浏览器,我不知道其他移动操作系统的浏览器)和 webm 编码有关预设。

为了更清楚地了解这种行为不是 gif 文件所特有的,当然我们可以使用任何视频格式,但就我而言,我将使用 avi 电影(从 here 下载)。我将使用 4 个 ffmpeg 命令将此视频(10 秒,从 00:00:10 到 00:00:20)转换为 webm:

  • ffmpeg -i b.avi -ss 00:00:10.000 -to 00:00:20.000 -c:v libvpx -crf 4 -
    b:v 500K -vf scale=640:359 -an 1.webm
  • ffmpeg -i b.avi -ss 00:00:10.000 -to 00:00:20.000 -c:v libvpx -crf 4 -
    b:v 500K -vf scale=639:360 -an 2.webm
  • ffmpeg -i b.avi -ss 00:00:10.000 -to 00:00:20.000 -c:v libvpx -crf 4 -
    b:v 500K -vf scale=639:359 -an 3.webm
  • ffmpeg -i b.avi -ss 00:00:10.000 -to 00:00:20.000 -c:v libvpx -crf 4 -
    b:v 500K -vf scale=640:360 -an 4.webm

  • 在这里每个人都可以看到所有这些命令之间的唯一区别是缩放过滤器,实际上这是可以解决“问题”的点(这里的问题在引号之间,因为我认为这是一个浏览器错误)。为什么 ?

    因为在 height 的情况下我们的 webm 视频是奇怪的,我们可以看到行为,否则视频播放没有任何问题。当然,这里我们不会谈论 Firefox,因为在所有情况下它都可以毫无问题地播放视频。

    所以,因为你的 gif 是 350x169 像素大小,你得到了这种行为,为了避免这种情况,你可以使用缩放过滤器来修复你的 webm 的尺寸,如下所示:
    ffmpeg -i your_gif.gif -c:v libvpx -crf 12 -b:v 500K -vf scale=350:170 output.webm

    或者以一般方式避免计算,如果你想保持相同的维度:
    ffmpeg -i your_gif.gif -c:v libvpx -crf 12 -b:v 500K -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" output.webm

    "scale=trunc(iw/2)*2:trunc(ih/2)*2" 将始终为您提供均匀的宽度和高度,而无需真正的缩放。

    你可以自己测试我测试过的所有视频 here并将结果视为快照 here (快照仅适用于 UC Browse 之外的 4 个浏览器,我们无法同时看到所有视频),当然您也可以看到使用原始 ffmpeg 命令和我的最后一个将 gif 转换为 webm 的结果规模过滤器。

    希望所有这些都可以帮助你。

    关于video - webM 文件在移动设备上显示绿色和紫色效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27674146/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com