请选择 进入手机版 | 继续访问电脑版

大众世界 world of demotic + 社区新动力

 找回密码
 注册会员
搜索
查看: 1868|回复: 0

[视频开发] ckplayer播放器解决MP4视频文件缓冲结束前无法播放的方法

[复制链接]
发表于 2018-10-23 16:46:44 | 显示全部楼层 |阅读模式
最近给客户上传mp4的视频,发现不下载完成,不会播放,查了下,视频要等加载完才能播放,而不是边加载边播放这是因为视频的元数据信息不在第一帧所致。元数据是指保存视频属性的一组参数,比如视频的宽度,高度,时间长,总字节,关键帧等信息。因为网页上的视频播放器播放视频是以流的形式加载(即没办法直接加载视频结尾的数据,只能从前向后加载),所以播放器必需要读取到元数据信息才可以进行播放。
具体的解析办法可参考:
作者测试是在windows下使用,所以下载的页面地址是: http://ffmpeg.zeranoe.com/builds/
点击页面上的Download FFmpeg git-738ebb4 64-bit Static(我是64位的),如果你是32位点击 Download FFmpeg git-738ebb4 32-bit Static
下载下来解压缩后我把文件夹改成了ffmpeg放在D盘下面
运行三个文件:

D:ffmpeg/bin/ffmpeg.exe
D:ffmpeg/bin/ffplay.exe
D:ffmpeg/bin/ffprobe.exe
1
2
3
这就成功安装了

下面举二个简单的例子
首先,搞一个视频文件放在D盘根目录下,主要为了省事,比如我放的是:D:/1.flv
在开始->运行里输入cmd,弹出命令窗口
按下面的命令进行操作

输入 d:按回车
输入 cd ffmpeg/bin回车
1
2
这样就进入了ffmpeg的目录了,
1、测试视频截图的功能
复制如下命令,在命令行里点击鼠标右键选择粘贴

ffmpeg -i d:/1.flv -y -f  image2 -t 0.001 -s 720x576 d:/1.jpg
1
看看D盘下是不是生成了一个1.jpg的图片,是的话就成功了,不是你就认真检查下吧,看看路径是不是正确
2、测试d:/1.flv转成d:/1.mp4
同样,复制下面的命令,在命令窗口里点击鼠标右键选择粘贴

ffmpeg.exe -i "d:1.flv" -y  -metadata title="这是视频标题"  -metadata comment="这是视频信息!"   -c:v libx264  -preset superfast -x264opts keyint=25  -r 15 -b:v 500k -c:a aac -strict experimental -ar 44100 -ac 2  -b:a 64k -vf  "movie=a.png[watermark];scale=1364x768[scale];[scale][watermark] overlay=30:30[out]" -f  mp4 "d:2.mp4"
1
等命令执行完成后看看D盘下是不是有个mp4了,有了就说明成功了。
参数说明:

movie=是水印
-b:v 后的500k是码率
scale=后是分辩率
keyint=25 是关键帧 表示每25帧会有一个关键帧
1
2
3
4
如果你的视频只是元数据信息不在第一帧,下面介绍另一种mp4把元数据信息转到视频第一帧
首先需要下载一个qt-faststart
下载地址:http://www.ckplayer.com/down/qt-faststart.rar
下载下来解压得到qt-faststart.exe放到d:ffmpeg/bin/下面
运行命令(对了,需要在cmd下进入d:ffmpeg/bin/,才用一下命令):

qt-faststart.exe d:/1.mp4 d:/2.mp4
1
最后出来的这个2.mp4就是成功的了。可以边下载边播放
关于详细的参数设置,请自行网上搜索了解或者看使用说明

qt-faststart.exe 下载



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|Wod Inc. ( 蜀ICP备20000008号-8

GMT+8, 2024-4-18 10:31 , Processed in 0.100535 second(s), 28 queries .

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表