gradio部署视频输入输出示例,gradio网页输出视频nan,输出视频无法播放
Opencv不能采用h64格式进行编码
所以如果浏览器不能显示输出视频,显示nan,可以检查下是否使用了opencv处理了视频,以及编码格式
错误显示:

修正后:

我的处理视频的函数就是踩了这个坑,好久没意识到
解决方案
moviepy介绍
在moviepy的write_videofile方法中,codec参数用于指定视频编码格式。对于视频编码,moviepy支持多种不同的编解码器,其中一些常用的编解码器包括:
libx264:这是一个流行的H.264编码器,通常提供很好的压缩率和质量平衡。libx265:这是H.265编码器,它提供了比H.264更高的压缩率,但编码时间可能会更长。mpeg4:这是一个较老的编码器,它的压缩率不如H.264,但可能在某些设备上更兼容。vp8:这是一个较早的VP8编码器,通常用于WebM视频。vp9:这是VP8的更新版本,提供了更好的压缩率和质量。
除了视频编码,write_videofile方法还有其他一些重要的参数,例如:fps:指定输出视频的帧率。preset:指定编码预设,这会影响编码速度和质量。例如,ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow和placebo。bitrate:指定输出视频的比特率。audio_codec:指定音频编码格式。temp_audiofile:指定临时音频文件的路径,这在处理带有不同音频编码的视频时可能有用。verbose:如果设置为True,则编码过程将显示详细信息。
请注意,并不是所有编解码器都适用于所有情况,选择哪个编解码器取决于您的具体需求,例如视频质量、文件大小和兼容性。在实际应用中,您可能需要尝试不同的编解码器和参数,以找到最适合您需求的设置。
浏览器接受的视频编码格式:
浏览器通常支持多种视频编码格式,以便能够播放不同来源和格式的视频文件。以下是一些主流浏览器支持的视频编码格式:
- H.264/AVC:这是一种广泛使用的视频编码格式,得到了大多数现代浏览器的支持,包括Chrome、Firefox、Safari和Edge。
- HEVC/H.265:这是一种较新的编码格式,提供了比H.264更好的压缩效率,但可能需要额外的授权费用。目前,Safari浏览器和某些版本的Chrome支持HEVC。
- VP8:这是Google开发的一种开源视频编码格式,曾用于WebRTC和YouTube。虽然它的使用有所减少,但仍然是WebM视频容器的一部分。
- VP9:是VP8的后续版本,提供了更好的压缩效率。它得到了Chrome和Firefox的支持。
- AV1:是一种新的、开源的视频编码格式,由AOMedia组织开发,目标是提供比HEVC更好的压缩效率,并且免版税。目前,Chrome、Firefox和Edge都支持AV1。
- Theora:这是一个开源的视频编码格式,但它的使用已经减少,因为VP8和AV1提供了更好的压缩率和性能。
为了确保浏览器能够播放特定的视频格式,视频文件通常会被封装在容器格式中,如MP4、WebM或OGG。

本文介绍了如何在Gradio中处理视频输入输出,解决Opencv编码不支持H64的问题,推荐使用H264编码并通过moviepy生成兼容浏览器的视频。还详细讲解了浏览器接受的视频编码格式和Gradio视频组件的初始化参数。
最低0.47元/天 解锁文章
1733

被折叠的 条评论
为什么被折叠?



