Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mp4 flv边下边播及进度跳转要点 #19

Open
abeet opened this issue Jun 14, 2016 · 0 comments
Open

mp4 flv边下边播及进度跳转要点 #19

abeet opened this issue Jun 14, 2016 · 0 comments

Comments

@abeet
Copy link
Owner

abeet commented Jun 14, 2016

nginx+jwplayer配置flv/MP4点播系统, 视频拖动支持
http://www.cnblogs.com/lingdhox/p/4523885.html
编译nginx, 增加flv和MP4的支持

1
/configure --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-debug

测试是否支持seek(拖动, 快进)

1) flv需要metadata数据才可以seek. 可以通过ffmpeg来查看flv视频是否有metadata数据. 

ffmpeg -i test.flv

如果flv没有metadata数据. 可以通过yamdi来增加metadata数据, 这个工具windows和linux版本都有, 使用起来也很简单

yamdi -i sample.flv -o sample_with_metadata.flv

把flv视频放在nginx 的html目录下. 然后通过curl或vlc测试拖动

 先修改下nginx的配置nginx.conf, 增加如下内容

location ~ .flv$ {
flv;
limit_rate 250k;
}
location ~ .mp4$ {
mp4;
limit_rate 250k;
}
  limit_rate是限速的意思, 因为是本地测试. 缓冲速度非常快. 如果不限速的话, 视频会立刻下载完成.

<script type="text/javascript"> jwplayer("myElement").setup({ file:"http://ip/test.flv", image: "../image/webrtc.png", startparam: "start" }); </script>

  关键是 startparam: "start". 没有这句的话. jwplayer是无法拖动视频的
. MP4可以不需要这个startparam就可以拖动.

http://www.ckplayer.com/tool/help/71.htm
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"
等命令执行完成后看看D盘下是不是有个mp4了,有了就说明成功了。
参数说明:
movie=是水印
-b:v 后的500k是码率
scale=后是分辩率
keyint=25 是关键帧 表示每25帧会有一个关键帧

如果你的视频只是元数据信息不在第一帧,下面介绍另一种mp4把元数据信息转到视频第一帧
首先需要下载一个qt-faststart
下载地址:http://www.ckplayer.com/down/qt-faststart.rar
下载下来解压得到qt-faststart.exe放到d:ffmpeg/bin/下面
运行命令:qt-faststart.exe d:/1.mp4 d:/2.mp4
最后出来的这个2.mp4就是成功的了。可以边下载边播放

Flash播放mp4的两个问题:编码问题和需要下载完后才能播放的问题

(1)编码问题。需要是 h.264 编码,不是此编码的在某些Flash版本或OS上会出现放不出来视频的问题;可以用 3GP、MP4视频转换精灵(BRVideoConverter) 转码。

(2)下载完后才能播放的问题。mp4视频有metadata,通常在文件尾部,而flash读到这个metadata才开始播放,解决办法是用工具处理一下mp4,把它的metadata移至文件头部。

推荐工具:mp4box (http://www.videohelp.com/tools/mp4box)

指令:mp4box.exe -isma xx.mp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant