首页 > 使用ffmpeg将视频转ts

使用ffmpeg将视频转ts

需求场景:

早期的视频转码为MP4格式,会有个问题,当视频文件比较大时,就比较坑;
目前考虑把视频输出为多个.ts格式的视频片段和一个m3u8格式的.ts文件列表;

在网上查到可以使用ffmpeg以下命令转换:

ffmpeg -i Wildlife.wmv -codec:v libx264 -codec:a mp3 -map 0 -f ssegment -segment_format mpegts -segment_list ./m3u8/index.m3u8 -segment_time 10 ./m3u8/’%03d.ts’

问题1:

可以成功把视频转为.ts并生成.m3u8索引文件,但是使用video标签播放时不能播放(safari浏览器)

使用index.m3u8不能播放
<video src="m3u8/index.m3u8"></video>

使用ts文件可以播放
<video src="m3u8/0.ts"></video>

感谢大神 @itlr的提醒,应该是http地址引用m3u8文件:

<video src="http://localhost/m3u8/index.m3u8"></video>

问题2:(未解决)

可以播放以后又遇到了新的问题:

直接通过http引用,可以播放但是视频不显示水印
<video src="http://localhost/m3u8/index.m3u8"></video>

可以播放也可以显示水印
<video src="m3u8/0.ts"></video>

转码时的添加水印的参数(图片和文字水印都试过,结果一样):

# 文字水印
-vf "drawtext=text=Teachmyself:fontfile=/Library/Fonts/Arial.ttf:fontsize=16:fontcolor=yellow@0.8:x=w-tw-16:y=h-th-16"

# 图片水印:
-vf "movie=watermark.png [wm]; [in][wm] overlay=main_w-overlay_w-16:main_h-overlay_h-16 [out]"

MimeType 要对,video tag和服务器端

.M3U8 application/x-mpegURL or vnd.apple.mpegURL
.ts video/MP2T

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/DeployingHTTPLiveStreaming/DeployingHTTPLiveStreaming.html


试试用保利威视统一处理好了。

【热门文章】
【热门文章】