gradio部署视频输入输出示例,gradio网页输出视频nan,输出视频无法播放解决方法

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

Opencv不能采用h64格式进行编码

所以如果浏览器不能显示输出视频,显示nan,可以检查下是否使用了opencv处理了视频,以及编码格式

错误显示:
在这里插入图片描述

修正后:
在这里插入图片描述

我的处理视频的函数就是踩了这个坑,好久没意识到

解决方案

moviepy介绍

moviepywrite_videofile方法中,codec参数用于指定视频编码格式。对于视频编码,moviepy支持多种不同的编解码器,其中一些常用的编解码器包括:

  • libx264:这是一个流行的H.264编码器,通常提供很好的压缩率和质量平衡。
  • libx265:这是H.265编码器,它提供了比H.264更高的压缩率,但编码时间可能会更长。
  • mpeg4:这是一个较老的编码器,它的压缩率不如H.264,但可能在某些设备上更兼容。
  • vp8:这是一个较早的VP8编码器,通常用于WebM视频。
  • vp9:这是VP8的更新版本,提供了更好的压缩率和质量。
    除了视频编码,write_videofile方法还有其他一些重要的参数,例如:
  • fps:指定输出视频的帧率。
  • preset:指定编码预设,这会影响编码速度和质量。例如,ultrafastsuperfastveryfastfasterfastmediumslowslowerveryslowplacebo
  • bitrate:指定输出视频的比特率。
  • audio_codec:指定音频编码格式。
  • temp_audiofile:指定临时音频文件的路径,这在处理带有不同音频编码的视频时可能有用。
  • verbose:如果设置为True,则编码过程将显示详细信息。
    请注意,并不是所有编解码器都适用于所有情况,选择哪个编解码器取决于您的具体需求,例如视频质量、文件大小和兼容性。在实际应用中,您可能需要尝试不同的编解码器和参数,以找到最适合您需求的设置。

浏览器接受的视频编码格式:

浏览器通常支持多种视频编码格式,以便能够播放不同来源和格式的视频文件。以下是一些主流浏览器支持的视频编码格式:

  1. H.264/AVC:这是一种广泛使用的视频编码格式,得到了大多数现代浏览器的支持,包括Chrome、Firefox、Safari和Edge。
  2. HEVC/H.265:这是一种较新的编码格式,提供了比H.264更好的压缩效率,但可能需要额外的授权费用。目前,Safari浏览器和某些版本的Chrome支持HEVC。
  3. VP8:这是Google开发的一种开源视频编码格式,曾用于WebRTC和YouTube。虽然它的使用有所减少,但仍然是WebM视频容器的一部分。
  4. VP9:是VP8的后续版本,提供了更好的压缩效率。它得到了Chrome和Firefox的支持。
  5. AV1:是一种新的、开源的视频编码格式,由AOMedia组织开发,目标是提供比HEVC更好的压缩效率,并且免版税。目前,Chrome、Firefox和Edge都支持AV1。
  6. Theora:这是一个开源的视频编码格式,但它的使用已经减少,因为VP8和AV1提供了更好的压缩率和性能。
    为了确保浏览器能够播放特定的视频格式,视频文件通常会被封装在容器格式中,如MP4、WebM或OGG。
本文章已经生成可运行项目
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天天写点代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值