通过你的 gradio 和 摄像头获取照片和视频

简介: 通过你的 gradio 和 摄像头获取照片和视频

1.环境设置


1.1gradio安装


需要安装 gradio,安装办法就是 pip install gradio


2.ffmpeg安装


再次需要加入到path路径。

下载地址:www.gyan.dev/ffmpeg/buil…

  • ffmpeg.exe
  • ffprobe.exe
  • ffmpeg.exe

三者缺一不可,并需要加入path中去。


2.简单小程序


import gradio as gr
def snap(image, video):
    return [image, video]
demo = gr.Interface(
    snap,
    [gr.Image(source="webcam", tool=None), gr.Video(source="webcam")],
    ["image", "video"],
)
if __name__ == "__main__":
    demo.launch(share=True)

2.1 引入gradio


简单,直接引入import gradio as gr


2.2 定义方法


  • 输入图片、视频
  • 输出图片、视频


2.3 定义接口


接口三个参数:

  • 方法
  • 输入【输入为2个,一个是webcam的image,一个是webcam的video】
  • 输出【image,video】


2.4 运行


运行直接就是接口launch,这个方法。 该方法参数较多,常用参数有:

  • share 是否为接口创建可公开共享的链接。创建一个SSH隧道,使您的UI可以从任何地方访问。如果没有提供,则每次默认设置为False,除非在谷歌Colab中运行。当localhost不可访问(例如谷歌Colab)时,不支持设置share=False。
  • server_name 要使应用程序在本地网络上可访问,将此设置为“0.0.0.0”。可以通过环境变量GRADIO SERVER NAME设置。如果为None,将使用“127.0.0.1”。显示提示:如果为True,将偶尔显示关于新Gradio功能的提示
  • server_port 将在此端口上启动gradio应用程序(如果可用)。可以通过环境变量GRADIO服务器端口设置。如果为None,将搜索从7860开始的可用端口。 参数较多就不看了。


3.执行情况


3.1 终端日志输出


I:\miniconda3\envs\pytorch\python.exe C:\Users\Administrator\PycharmProjects\pythonProject\webcam.py 
Running on local URL:  http://127.0.0.1:7860
Running on public URL: https://244c15fc39f9f7e0f0.gradio.live
This share link expires in 72 hours. For free permanent hosting and GPU upgrades (NEW!), check out Spaces: https://huggingface.co/spaces
ffmpeg version 2023-03-30-git-4d216654ca-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      58.  5.100 / 58.  5.100
  libavcodec     60.  7.100 / 60.  7.100
  libavformat    60.  4.101 / 60.  4.101
  libavdevice    60.  2.100 / 60.  2.100
  libavfilter     9.  5.100 /  9.  5.100
  libswscale      7.  2.100 /  7.  2.100
  libswresample   4. 11.100 /  4. 11.100
  libpostproc    57.  2.100 / 57.  2.100
Input #0, matroska,webm, from 'C:\Users\Administrator\AppData\Local\Temp\8cbad405b8474e983e4c02b34a954a697e25b5a5\sample.webm':
  Metadata:
    encoder         : Chrome
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0(eng): Video: h264 (Constrained Baseline), yuv420p(progressive), 640x480, SAR 1:1 DAR 4:3, 30.30 fps, 30 tbr, 1k tbn (default)
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> vp9 (libvpx-vp9))
Press [q] to stop, [?] for help
[libvpx-vp9 @ 00000253d48ee780] v1.13.0-182-g5b05f6f3a
[libvpx-vp9 @ 00000253d48ee780] Neither bitrate nor constrained quality specified, using default CRF of 32
Output #0, webm, to 'C:\Users\Administrator\AppData\Local\Temp\8cbad405b8474e983e4c02b34a954a697e25b5a5\sample_flip.webm':
  Metadata:
    encoder         : Lavf60.4.101
  Stream #0:0(eng): Video: vp9, yuv420p(progressive), 640x480 [SAR 1:1 DAR 4:3], q=2-31, 30 fps, 1k tbn (default)
    Metadata:
      encoder         : Lavc60.7.100 libvpx-vp9
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
[matroska,webm @ 00000253d46a4400] File ended prematurely at pos. 354269 (0x567dd)
frame=  121 fps= 27 q=21.0 Lsize=     105kB time=00:00:04.03 bitrate= 213.1kbits/s speed=0.884x    
video:104kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.271754%
ffmpeg version 2023-03-30-git-4d216654ca-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      58.  5.100 / 58.  5.100
  libavcodec     60.  7.100 / 60.  7.100
  libavformat    60.  4.101 / 60.  4.101
  libavdevice    60.  2.100 / 60.  2.100
  libavfilter     9.  5.100 /  9.  5.100
  libswscale      7.  2.100 /  7.  2.100
  libswresample   4. 11.100 /  4. 11.100
  libpostproc    57.  2.100 / 57.  2.100
Input #0, matroska,webm, from 'C:\Users\Administrator\AppData\Local\Temp\d1d0cb0ab1d6909a5688d4f324734e1f908ed912\sample.webm':
  Metadata:
    encoder         : Chrome
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0(eng): Video: h264 (Constrained Baseline), yuv420p(progressive), 640x480, SAR 1:1 DAR 4:3, 30.30 fps, 62.50 tbr, 1k tbn (default)
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> vp9 (libvpx-vp9))
Press [q] to stop, [?] for help
[libvpx-vp9 @ 00000271722bd640] v1.13.0-182-g5b05f6f3a
[libvpx-vp9 @ 00000271722bd640] Neither bitrate nor constrained quality specified, using default CRF of 32
Output #0, webm, to 'C:\Users\Administrator\AppData\Local\Temp\d1d0cb0ab1d6909a5688d4f324734e1f908ed912\sample_flip.webm':
  Metadata:
    encoder         : Lavf60.4.101
  Stream #0:0(eng): Video: vp9, yuv420p(progressive), 640x480 [SAR 1:1 DAR 4:3], q=2-31, 30 fps, 1k tbn (default)
    Metadata:
      encoder         : Lavc60.7.100 libvpx-vp9
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
[matroska,webm @ 0000027171ce4400] File ended prematurely at pos. 348559 (0x5518f)
frame=  127 fps= 26 q=30.0 Lsize=     228kB time=00:00:04.20 bitrate= 444.9kbits/s speed=0.873x    
video:227kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.601271%


3.2 截图


image.png


3.3 保存


图片、视频直接点下载图片即可。

image.png



目录
相关文章
|
JSON API 持续交付
逐步指南:使用FastAPI部署YOLO模型的步骤
逐步指南:使用FastAPI部署YOLO模型的步骤
Unknown encoder ‘libx264‘的解决方法
Unknown encoder ‘libx264‘的解决方法
1939 0
|
机器人 API UED
Gradio 流式输出教程
本文是Gradio流式输出教程,介绍了如何通过Gradio的Blocks API实现聊天机器人的流式文本输出,包括两个示例:一个简单的ChatBot流式输出示例和一个更复杂的输入处理与输出分离的流式输出示例,旨在改善用户体验并为实时处理积累技术。
Gradio 流式输出教程
|
12月前
|
人工智能 JSON API
使用 Qwen 生成数据模型和进行结构化输出
本教程展示如何使用CAMEL框架和Qwen模型生成结构化数据。CAMEL是一个强大的多智能体框架,支持复杂的AI任务;Qwen由阿里云开发,具备自然语言处理等先进能力。教程涵盖安装、API密钥设置、定义Pydantic模型,并演示了通过Qwen生成JSON格式的学生信息。最后,介绍了如何利用Qwen生成多个随机学生信息的JSON格式数据。欢迎在[CAMEL GitHub](https://github.com/camel-ai/camel)上为项目点星支持。
3633 70
|
10月前
|
存储 算法 测试技术
CodeFuse-AAIS:改进低智能体框架助力高效程序修复
本文提出了一种基于低智能体框架的自适应自动化程序修复(APR)解决方案——AAIS。该方案结合了智能体的自适应性和低智能体的高效控制流,通过引入交互式缺陷定位和多模型辅助生成,显著提升了程序修复的准确性和多样性。实验结果表明,AAIS在SWE-Bench基准测试中表现出色,函数级定位准确率提升了46.94%-113.32%,Issue Solving任务上达到了35.67%的性能,展示了其在未来软件开发中的应用潜力。
261 0
CodeFuse-AAIS:改进低智能体框架助力高效程序修复
|
机器学习/深度学习 人工智能 算法
基于YOLOv8的火焰烟雾实时检测系统【训练和系统源码+Pyside6+数据集+包运行】
基于YOLOv8的火焰烟雾实时检测系统,使用6744张图片训练有效模型,开发了带GUI界面的系统,支持图片、视频和摄像头实时检测,具备模型权重导入、检测置信度调节等功能,并提供项目完整代码和数据集。
2129 1
基于YOLOv8的火焰烟雾实时检测系统【训练和系统源码+Pyside6+数据集+包运行】
|
人工智能 自然语言处理 机器人
手把手带你搭建一个语音对话机器人,5分钟定制个人AI小助手(新手入门篇)
本文介绍了如何从零开始搭建一个语音对话机器人,涵盖自动语音识别(ASR)、自然语言处理(NLP)和文本到语音合成(TTS)三大核心模块。通过使用开源工具如FunASR、LLaMA3-8B和ChatTTS,以及FastAPI和Gradio等技术,详细指导读者轻松实现个人AI小助手的构建,适合技术新手快速上手。
4950 1
|
存储 机器人 API
如何使用渐变块创建自定义聊天机器人
本文是一篇使用Gradio库的Blocks API创建自定义聊天机器人界面的教程,涵盖了从基础聊天机器人到支持流式响应、用户反馈(喜欢/不喜欢)以及Markdown、图像、音频和视频等多媒体内容的高级功能实现方法。
如何使用渐变块创建自定义聊天机器人
|
机器学习/深度学习 前端开发 安全
【Gradio】Could not create share link
【Gradio】Could not create share link
6550 7
|
Python
[python]使用gunicorn部署fastapi服务
【8月更文挑战第6天】以下是使用`gunicorn`部署`FastAPI`服务的简要步骤:首先安装`FastAPI`与`gunicorn`;创建一个简单的`FastAPI`应用,例如定义根路径返回"Hello World";保存代码为`main.py`;在应用目录中启动`gunicorn`服务,如`gunicorn main:app -w 4 -b 0.0.0.0:8000`,其中`-w 4`指定4个工作进程,`-b`绑定至所有IP的8000端口。这样就完成了基础部署,可通过`http://服务器IP:8000/`访问应用。
573 0