使用h264_vaapi硬件编码器通过FFmpeg实现流式分片MP4的问题求助
h264_vaapi硬件编码器通过FFmpeg实现流式分片MP4的问题求助
各位大佬好!我最近在折腾用FFmpeg的h264_vaapi硬件编码器做流式分片MP4(fMP4)的功能,试了各种参数组合都没搞定,想请教下有没有遇到过类似问题的朋友能给点思路?我把目前的情况和之前的可行方案都整理出来了,麻烦大家帮忙看看~
项目整体情况
我做了个Node.js项目,核心是抓取电脑屏幕画面,通过Node.js spawn启动FFmpeg外部进程,把编码后的分片MP4推送到HTTPS服务器。项目里还有些机器学习、图像识别的功能,但和当前问题无关就不多啰嗦了。之前在Windows 10+Nvidia显卡的环境下已经跑通了,而且在Firefox、Chrome里用HTML5 video标签能完美播放流内容。
Windows 10下的可行方案
在Win10+Nvidia的环境里,我是这么实现的:启动FFmpeg的时候,会先把fMP4的第一个MOOV初始化片段保存下来,在给HTTP客户端推实时流之前,先把这个初始化片段发过去,这样浏览器就能正常解析后续的流了。
当时用的Node.js参数数组(JS语法,用于spawn启动FFmpeg)是这样的:
var args = [ "-f", "gdigrab", "-framerate", "30", "-i", "desktop", "-c:v", "h264_nvenc", "-preset", "fast", "-f", "mp4", "-movflags", "frag_keyframe+empty_moov+default_base_moof", "-" ];
现在我想把这套逻辑迁移到支持h264_vaapi硬件编码的环境里,试了各种参数调整,要么是初始化片段出问题,要么是浏览器无法正常播放流。有没有用过h264_vaapi做流式fMP4的朋友能分享下正确的参数配置?或者有没有什么我没注意到的坑?
麻烦各位了,谢谢大家的时间!
备注:内容来源于stack exchange,提问作者Tonda
相关产品推荐
相关产品推荐

