从gif转换的mp4没有在网络浏览器中显示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从gif转换的mp4没有在网络浏览器中显示相关的知识,希望对你有一定的参考价值。
我正在尝试使用ffmpeg将动画GIF转换为MP4文件。只有这个转换GIF到MP4:
exec('ffmpeg -i ' . $destinationPath . $filename . ' -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" ' . $destinationPath . $newFilename);
当我从服务器下载它时,我可以在我的电脑上播放它,但它不想在浏览器中支付。浏览器返回给我这个错误:
在GIF到MP4转换器后,我得到一个缩略图图像,这是正常的:
exec("ffmpeg -i " . $destinationPath . $video . ".mp4 -ss 00:00:01.000 -vframes 1 ".storage_path().$folderNameThumb."/media.png");
它向我展示了一个有效的GIF框架。任何人都可以帮我解决视频中的这个问题吗?
ffprobe output
ffprobe version 2.8.13 Copyright (c) 2007-2017 the FFmpeg developers built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-16)
configuration:
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
这是我从一个MP4文件(运行ffprobe filename.mp4)得到的:
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
encoder : Lavf56.40.101
Duration: 00:00:02.16, start: 0.000000, bitrate: 593 kb/s
Stream #0:0(und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 500x312 [SAR 1:1 DAR 125:78], 589 kb/s, 8.33 fps, 8.33 tbr, 12800 tbn, 25 tbc (default)
Metadata:
handler_name : VideoHandler
因为我使用Laravel这是返回媒体的方法:
public function getGifImage(Media $media)
{
$path = storage_path() . '/uploads/gif/' . $media->content;
if (file_exists($path)) {
return response()->download($path, null, [], null);
}
}
答案
此时,Web浏览器只能解码MP4中的H.264视频。您的ffmpeg二进制文件没有链接libx264,因此它默认为内部MPEG-4 Part 2视频编解码器。
从您的平台获取最近的libx264 git二进制文件
Linux:http://johnvansickle.com/ffmpeg/
Windows:http://ffmpeg.zeranoe.com/builds/
Mac OS X:http://evermeet.cx/ffmpeg/,http://ffmpeg.zeranoe.com/builds/
以上是关于从gif转换的mp4没有在网络浏览器中显示的主要内容,如果未能解决你的问题,请参考以下文章