[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-dmlc--decord":3,"tool-dmlc--decord":65},[4,18,32,40,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,3,"2026-04-06T03:28:53",[13,14,15,16],"开发框架","图像","Agent","视频","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":24,"last_commit_at":25,"category_tags":26,"status":17},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85092,2,"2026-04-10T11:13:16",[14,27,16,28,15,29,30,13,31],"数据工具","插件","其他","语言模型","音频",{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":10,"last_commit_at":38,"category_tags":39,"status":17},3833,"MoneyPrinterTurbo","harry0703\u002FMoneyPrinterTurbo","MoneyPrinterTurbo 是一款利用 AI 大模型技术，帮助用户一键生成高清短视频的开源工具。只需输入一个视频主题或关键词，它就能全自动完成从文案创作、素材匹配、字幕合成到背景音乐搭配的全过程，最终输出完整的竖屏或横屏短视频。\n\n这款工具主要解决了传统视频制作流程繁琐、门槛高以及素材版权复杂等痛点。无论是需要快速产出内容的自媒体创作者，还是希望尝试视频生成的普通用户，无需具备专业的剪辑技能或昂贵的硬件配置（普通电脑即可运行），都能轻松上手。同时，其清晰的 MVC 架构和对多种主流大模型（如 DeepSeek、Moonshot、通义千问等）的广泛支持，也使其成为开发者进行二次开发或技术研究的理想底座。\n\nMoneyPrinterTurbo 的独特亮点在于其高度的灵活性与本地化友好性。它不仅支持中英文双语及多种语音合成，允许用户精细调整字幕样式和画面比例，还特别优化了国内网络环境下的模型接入方案，让用户无需依赖 VPN 即可使用高性能国产大模型。此外，工具提供批量生成模式，可一次性产出多个版本供用户择优，极大地提升了内容创作的效率与质量。",54991,"2026-04-05T12:23:02",[13,30,15,16,14],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":24,"last_commit_at":46,"category_tags":47,"status":17},2179,"oh-my-openagent","code-yeongyu\u002Foh-my-openagent","oh-my-openagent（简称 omo）是一款强大的开源智能体编排框架，前身名为 oh-my-opencode。它致力于打破单一模型供应商的生态壁垒，解决开发者在构建 AI 应用时面临的“厂商锁定”难题。不同于仅依赖特定模型的封闭方案，omo 倡导开放市场理念，支持灵活调度多种主流大模型：利用 Claude、Kimi 或 GLM 进行任务编排，调用 GPT 处理复杂推理，借助 Minimax 提升响应速度，或发挥 Gemini 的创意优势。\n\n这款工具特别适合希望摆脱平台限制、追求极致性能与成本平衡的开发者及研究人员使用。通过统一接口，用户可以轻松组合不同模型的长处，构建更高效、更具适应性的智能体系统。其独特的技术亮点在于“全模型兼容”架构，让用户不再受制于某一家公司的策略变动或定价调整，真正实现对前沿模型资源的自由驾驭。无论是构建自动化编码助手，还是开发多步骤任务处理流程，oh-my-openagent 都能提供灵活且稳健的基础设施支持，助力用户在快速演进的 AI 生态中保持技术主动权。",50701,"2026-04-12T11:29:54",[16,30,13,14,15],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":10,"last_commit_at":54,"category_tags":55,"status":17},5295,"tabby","TabbyML\u002Ftabby","Tabby 是一款可私有化部署的开源 AI 编程助手，旨在为开发团队提供 GitHub Copilot 的安全替代方案。它核心解决了代码辅助过程中的数据隐私顾虑与云端依赖问题，让企业能够在完全掌控数据的前提下享受智能代码补全、聊天问答及上下文理解带来的效率提升。\n\n这款工具特别适合注重代码安全的企业开发团队、希望本地化运行大模型的科研机构，以及拥有消费级显卡的个人开发者。Tabby 的最大亮点在于其“开箱即用”的自包含架构，无需配置复杂的数据库或依赖云服务即可快速启动。同时，它对硬件十分友好，支持在普通的消费级 GPU 上流畅运行，大幅降低了部署门槛。此外，Tabby 提供了标准的 OpenAPI 接口，能轻松集成到现有的云 IDE 或内部开发流程中，并支持通过 REST API 接入自定义文档以增强知识上下文。从代码自动补全到基于 Git 仓库的智能问答，Tabby 致力于成为开发者身边懂业务、守安全的智能伙伴。",33308,"2026-04-07T20:23:18",[13,30,15,14,16],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":62,"last_commit_at":63,"category_tags":64,"status":17},6525,"generative-models","Stability-AI\u002Fgenerative-models","Generative Models 是 Stability AI 推出的开源项目，核心亮点在于最新发布的 Stable Video 4D 2.0（SV4D 2.0）。这是一个先进的视频转 4D 扩散模型，旨在解决从单一视角视频中生成高保真、多视角动态 3D 资产的技术难题。传统方法往往难以处理物体自遮挡或背景杂乱的情况，且生成的动态细节容易模糊，而 SV4D 2.0 通过改进的架构，显著提升了运动中的画面锐度与时空一致性，无需依赖额外的多视角参考图即可稳健地合成新颖视角的视频。\n\n该项目特别适合计算机视觉研究人员、AI 开发者以及从事 3D 内容创作的设计师使用。对于研究者，它提供了探索 4D 生成前沿的完整代码与训练权重；对于开发者，其支持自动回归生成长视频及低显存优化选项，便于集成与调试；对于设计师，它能将简单的物体运动视频快速转化为可用于游戏或影视的多视角 4D 素材。技术层面，SV4D 2.0 支持一次性生成 12 帧视频对应 4 个相机视角（或 5 帧对应 8 视角），分辨率达 576x576，并能更好地泛化至真实世界场景。用户只需准备一段白底或经简单抠图处理的物体运动视频，",27078,4,"2026-04-10T22:08:34",[16,29],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":80,"owner_twitter":80,"owner_website":80,"owner_url":81,"languages":82,"stars":118,"forks":119,"last_commit_at":120,"license":121,"difficulty_score":62,"env_os":122,"env_gpu":123,"env_ram":124,"env_deps":125,"category_tags":134,"github_topics":135,"view_count":24,"oss_zip_url":80,"oss_zip_packed_at":80,"status":17,"created_at":137,"updated_at":138,"faqs":139,"releases":170},7068,"dmlc\u002Fdecord","decord","An efficient video loader for deep learning with smart shuffling that's super easy to digest","Decord 是一款专为深度学习设计的高效视频加载工具，旨在让视频数据的读取像处理图片一样流畅自然。在训练神经网络时，随机访问视频帧是常见需求，但传统方式往往效率低下且操作繁琐。Decord 通过封装硬件加速解码器（如 FFMPEG、NVIDIA 及 Intel  codecs），提供了智能的视频切片与随机读取功能，显著提升了数据加载速度，完美解决了视频随机访问的性能瓶颈。\n\n除了视频，Decord 还能同步解码音频，让用户能轻松获取音画同步的数据片段，实现音视频处理的一站式解决方案。它特别支持“智能洗牌”策略，进一步优化了深度学习训练中的数据预处理流程。\n\n这款工具非常适合 AI 研究人员、深度学习开发者以及需要处理大规模视频数据集的工程师使用。无论是构建视频分类模型还是动作识别系统，Decord 都能凭借其卓越的随机访问性能和灵活的框架桥接能力，成为你数据处理流水线中的得力助手。目前它支持 Linux、macOS 和 Windows 平台，并可通过 pip 快速安装，同时也支持从源码编译以启用 GPU 加速功能。","# Decord\n\n![CI Build](https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\u002Fworkflows\u002FC\u002FC++%20CI\u002Fbadge.svg?branch=master)\n![Release Build](https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\u002Fworkflows\u002FPublish%20to%20PYPI\u002Fbadge.svg?branch=master)\n[![PyPI](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fdecord.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fdecord)\n[![Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdmlc_decord_readme_06724fc9151a.png)](http:\u002F\u002Fpepy.tech\u002Fproject\u002Fdecord)\n\n![symbol](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdmlc_decord_readme_cd480ee57ec8.png)\n\n`Decord` is a reverse procedure of `Record`. It provides convenient video slicing methods based on a thin wrapper on top of hardware accelerated video decoders, e.g.\n\n-   FFMPEG\u002FLibAV(Done)\n-   Nvidia Codecs(Done)\n-   Intel Codecs\n\n`Decord` was designed to handle awkward video shuffling experience in order to provide smooth experiences similar to random image loader for deep learning.\n\n`Decord` is also able to decode audio from both video and audio files. One can slice video and audio together to get a synchronized result; hence providing a one-stop solution for both video and audio decoding.\n\nTable of contents\n=================\n\n- [Benchmark](#preliminary-benchmark)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Bridge for Deep Learning frameworks](#bridges-for-deep-learning-frameworks)\n\n## Preliminary benchmark\n\nDecord is good at handling random access patterns, which is rather common during neural network training.\n\n![Speed up](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdmlc_decord_readme_e0febe6f6cae.png)\n\n## Installation\n\n### Install via pip\n\nSimply use\n\n```bash\npip install decord\n```\n\nSupported platforms:\n\n- [x] Linux\n- [x] Mac OS >= 10.12, python>=3.5\n- [x] Windows\n\n**Note that only CPU versions are provided with PYPI now. Please build from source to enable GPU acclerator.**\n\n\n### Install from source\n\n#### Linux\n\nInstall the system packages for building the shared library, for Debian\u002FUbuntu users, run:\n\n```bash\n# official PPA comes with ffmpeg 2.8, which lacks tons of features, we use ffmpeg 4.0 here\nsudo add-apt-repository ppa:jonathonf\u002Fffmpeg-4 # for ubuntu20.04 official PPA is already version 4.2, you may skip this step\nsudo apt-get update\nsudo apt-get install -y build-essential python3-dev python3-setuptools make cmake\nsudo apt-get install -y ffmpeg libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev\n# note: make sure you have cmake 3.8 or later, you can install from cmake official website if it's too old\n```\n\nClone the repo recursively(important)\n\n```bash\ngit clone --recursive https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\n```\n\nBuild the shared library in source root directory:\n\n```bash\ncd decord\nmkdir build && cd build\ncmake .. -DUSE_CUDA=0 -DCMAKE_BUILD_TYPE=Release\nmake\n```\n\nyou can specify `-DUSE_CUDA=ON` or `-DUSE_CUDA=\u002Fpath\u002Fto\u002Fcuda` or `-DUSE_CUDA=ON` `-DCMAKE_CUDA_COMPILER=\u002Fpath\u002Fto\u002Fcuda\u002Fnvcc` to enable NVDEC hardware accelerated decoding:\n\n```bash\ncmake .. -DUSE_CUDA=ON -DCMAKE_BUILD_TYPE=Release\n```\n\nNote that if you encountered the an issue with `libnvcuvid.so` (e.g., see [#102](https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\u002Fissues\u002F102)), it's probably due to the missing link for\n`libnvcuvid.so`, you can manually find it (`ldconfig -p | grep libnvcuvid`) and link the library to `CUDA_TOOLKIT_ROOT_DIR\\lib64` to allow `decord` smoothly detect and link the correct library.\n\nTo specify a customized FFMPEG library path, use `-DFFMPEG_DIR=\u002Fpath\u002Fto\u002Fffmpeg\".\n\nInstall python bindings:\n\n```bash\ncd ..\u002Fpython\n# option 1: add python path to $PYTHONPATH, you will need to install numpy separately\npwd=$PWD\necho \"PYTHONPATH=$PYTHONPATH:$pwd\" >> ~\u002F.bashrc\nsource ~\u002F.bashrc\n# option 2: install with setuptools\npython3 setup.py install --user\n```\n\n#### Mac OS\n\nInstallation on macOS is similar to Linux. But macOS users need to install building tools like clang, GNU Make, cmake first.\n\nTools like clang and GNU Make are packaged in _Command Line Tools_ for macOS. To install:\n\n```bash\nxcode-select --install\n```\n\nTo install other needed packages like cmake, we recommend first installing Homebrew, which is a popular package manager for macOS. Detailed instructions can be found on its [homepage](https:\u002F\u002Fbrew.sh\u002F).\n\nAfter installation of Homebrew, install cmake and ffmpeg by:\n\n```bash\nbrew install cmake ffmpeg\n# note: make sure you have cmake 3.8 or later, you can install from cmake official website if it's too old\n```\n\nClone the repo recursively(important)\n\n```bash\ngit clone --recursive https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\n```\n\nThen go to root directory build shared library:\n\n```bash\ncd decord\nmkdir build && cd build\ncmake .. -DCMAKE_BUILD_TYPE=Release\nmake\n```\n\nInstall python bindings:\n\n```bash\ncd ..\u002Fpython\n# option 1: add python path to $PYTHONPATH, you will need to install numpy separately\npwd=$PWD\necho \"PYTHONPATH=$PYTHONPATH:$pwd\" >> ~\u002F.bash_profile\nsource ~\u002F.bash_profile\n# option 2: install with setuptools\npython3 setup.py install --user\n```\n\n#### Windows\n\nFor windows, you will need CMake and Visual Studio for C++ compilation.\n\n-   First, install `git`, `cmake`, `ffmpeg` and `python`. You can use [Chocolatey](https:\u002F\u002Fchocolatey.org\u002F) to manage packages similar to Linux\u002FMac OS.\n-   Second, install [`Visual Studio 2017 Community`](https:\u002F\u002Fvisualstudio.microsoft.com\u002F), this my take some time.\n\nWhen dependencies are ready, open command line prompt:\n\n```bash\ncd your-workspace\ngit clone --recursive https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\ncd decord\nmkdir build\ncd build\ncmake -DCMAKE_CXX_FLAGS=\"\u002FDDECORD_EXPORTS\" -DCMAKE_CONFIGURATION_TYPES=\"Release\" -G \"Visual Studio 15 2017 Win64\" ..\n# open `decord.sln` and build project\n```\n\n## Usage\n\nDecord provides minimal API set for bootstraping. You can also check out jupyter notebook [examples](examples\u002F).\n\n### VideoReader\n\nVideoReader is used to access frames directly from video files.\n\n```python\nfrom decord import VideoReader\nfrom decord import cpu, gpu\n\nvr = VideoReader('examples\u002Fflipping_a_pancake.mkv', ctx=cpu(0))\n# a file like object works as well, for in-memory decoding\nwith open('examples\u002Fflipping_a_pancake.mkv', 'rb') as f:\n  vr = VideoReader(f, ctx=cpu(0))\nprint('video frames:', len(vr))\n# 1. the simplest way is to directly access frames\nfor i in range(len(vr)):\n    # the video reader will handle seeking and skipping in the most efficient manner\n    frame = vr[i]\n    print(frame.shape)\n\n# To get multiple frames at once, use get_batch\n# this is the efficient way to obtain a long list of frames\nframes = vr.get_batch([1, 3, 5, 7, 9])\nprint(frames.shape)\n# (5, 240, 320, 3)\n# duplicate frame indices will be accepted and handled internally to avoid duplicate decoding\nframes2 = vr.get_batch([1, 2, 3, 2, 3, 4, 3, 4, 5]).asnumpy()\nprint(frames2.shape)\n# (9, 240, 320, 3)\n\n# 2. you can do cv2 style reading as well\n# skip 100 frames\nvr.skip_frames(100)\n# seek to start\nvr.seek(0)\nbatch = vr.next()\nprint('frame shape:', batch.shape)\nprint('numpy frames:', batch.asnumpy())\n\n```\n\n### VideoLoader\n\nVideoLoader is designed for training deep learning models with tons of video files.\nIt provides smart video shuffle techniques in order to provide high random access performance (We know that seeking in video is super slow and redundant).\nThe optimizations are underlying in the C++ code, which are invisible to user.\n\n```python\nfrom decord import VideoLoader\nfrom decord import cpu, gpu\n\nvl = VideoLoader(['1.mp4', '2.avi', '3.mpeg'], ctx=[cpu(0)], shape=(2, 320, 240, 3), interval=1, skip=5, shuffle=1)\nprint('Total batches:', len(vl))\n\nfor batch in vl:\n    print(batch[0].shape)\n```\n\nShuffling video can be tricky, thus we provide various modes:\n\n```python\nshuffle = -1  # smart shuffle mode, based on video properties, (not implemented yet)\nshuffle = 0  # all sequential, no seeking, following initial filename order\nshuffle = 1  # random filename order, no random access for each video, very efficient\nshuffle = 2  # random order\nshuffle = 3  # random frame access in each video only\n```\n\n### AudioReader\n\nAudioReader is used to access samples directly from both video(if there's an audio track) and audio files.\n\n```python\nfrom decord import AudioReader\nfrom decord import cpu, gpu\n\n# You can specify the desired sample rate and channel layout\n# For channels there are two options: default to the original layout or mono\nar = AudioReader('example.mp3', ctx=cpu(0), sample_rate=44100, mono=False)\nprint('Shape of audio samples: ', ar.shape())\n# To access the audio samples\nprint('The first sample: ', ar[0])\nprint('The first five samples: ', ar[0:5])\nprint('Get a batch of samples: ', ar.get_batch([1,3,5]))\n```\n\n### AVReader\n\nAVReader is a wraper for both AudioReader and VideoReader. It enables you to slice the video and audio simultaneously.\n\n```python\nfrom decord import AVReader\nfrom decord import cpu, gpu\n\nav = AVReader('example.mov', ctx=cpu(0))\n# To access both the video frames and corresponding audio samples\naudio, video = av[0:20]\n# Each element in audio will be a batch of samples corresponding to a frame of video\nprint('Frame #: ', len(audio))\nprint('Shape of the audio samples of the first frame: ', audio[0].shape)\nprint('Shape of the first frame: ', video.asnumpy()[0].shape)\n# Similarly, to get a batch\naudio2, video2 = av.get_batch([1,3,5])\n```\n\n\n\n## Bridges for deep learning frameworks:\n\nIt's important to have a bridge from decord to popular deep learning frameworks for training\u002Finference\n\n-   Apache MXNet (Done)\n-   Pytorch (Done)\n-   TensorFlow (Done)\n\nUsing bridges for deep learning frameworks are simple, for example, one can set the default tensor output to `mxnet.ndarray`:\n\n```python\nimport decord\nvr = decord.VideoReader('examples\u002Fflipping_a_pancake.mkv')\nprint('native output:', type(vr[0]), vr[0].shape)\n# native output: \u003Cclass 'decord.ndarray.NDArray'>, (240, 426, 3)\n# you only need to set the output type once\ndecord.bridge.set_bridge('mxnet')\nprint(type(vr[0], vr[0].shape))\n# \u003Cclass 'mxnet.ndarray.ndarray.NDArray'> (240, 426, 3)\n# or pytorch and tensorflow(>=2.2.0)\ndecord.bridge.set_bridge('torch')\ndecord.bridge.set_bridge('tensorflow')\n# or back to decord native format\ndecord.bridge.set_bridge('native')\n```\n","# Decord\n\n![CI 构建](https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\u002Fworkflows\u002FC\u002FC++%20CI\u002Fbadge.svg?branch=master)\n![发布构建](https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\u002Fworkflows\u002FPublish%20to%20PYPI\u002Fbadge.svg?branch=master)\n[![PyPI](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fdecord.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fdecord)\n[![下载量](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdmlc_decord_readme_06724fc9151a.png)](http:\u002F\u002Fpepy.tech\u002Fproject\u002Fdecord)\n\n![symbol](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdmlc_decord_readme_cd480ee57ec8.png)\n\n`Decord` 是 `Record` 的逆过程。它基于硬件加速视频解码器的轻量封装，提供了便捷的视频切片方法，例如：\n\n-   FFMPEG\u002FLibAV（已完成）\n-   Nvidia 编解码器（已完成）\n-   Intel 编解码器\n\n`Decord` 的设计旨在解决深度学习中视频随机打乱时的卡顿问题，从而提供类似于随机图像加载器的流畅体验。\n\n此外，`Decord` 还可以从视频和音频文件中解码音频。用户可以同时对视频和音频进行切片以获得同步的结果，因此它为视频和音频解码提供了一站式的解决方案。\n\n目录\n=================\n\n- [基准测试](#preliminary-benchmark)\n- [安装](#installation)\n- [使用](#usage)\n- [深度学习框架桥接](#bridges-for-deep-learning-frameworks)\n\n## 初步基准测试\n\nDecord 在处理随机访问模式方面表现出色，而这种模式在神经网络训练中非常常见。\n\n![提速](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdmlc_decord_readme_e0febe6f6cae.png)\n\n## 安装\n\n### 通过 pip 安装\n\n只需运行以下命令：\n\n```bash\npip install decord\n```\n\n支持的平台：\n\n- [x] Linux\n- [x] Mac OS >= 10.12, python>=3.5\n- [x] Windows\n\n**请注意，目前 PYPI 上仅提供 CPU 版本。如需启用 GPU 加速，请从源代码编译安装。**\n\n\n### 从源代码安装\n\n#### Linux\n\n安装用于构建共享库的系统软件包。对于 Debian\u002FUbuntu 用户，执行以下操作：\n\n```bash\n# 官方 PPA 提供的是 ffmpeg 2.8，功能严重不足，我们这里使用 ffmpeg 4.0\nsudo add-apt-repository ppa:jonathonf\u002Fffmpeg-4 # 对于 ubuntu20.04，官方 PPA 已经是版本 4.2，可以跳过这一步\nsudo apt-get update\nsudo apt-get install -y build-essential python3-dev python3-setuptools make cmake\nsudo apt-get install -y ffmpeg libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev\n# 注意：确保你有 cmake 3.8 或更高版本，如果太旧，可以从 cmake 官网安装\n```\n\n递归克隆仓库（重要）：\n\n```bash\ngit clone --recursive https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\n```\n\n在源码根目录下构建共享库：\n\n```bash\ncd decord\nmkdir build && cd build\ncmake .. -DUSE_CUDA=0 -DCMAKE_BUILD_TYPE=Release\nmake\n```\n\n你可以指定 `-DUSE_CUDA=ON` 或 `-DUSE_CUDA=\u002Fpath\u002Fto\u002Fcuda` 或 `-DUSE_CUDA=ON` `-DCMAKE_CUDA_COMPILER=\u002Fpath\u002Fto\u002Fcuda\u002Fnvcc` 来启用 NVDEC 硬件加速解码：\n\n```bash\ncmake .. -DUSE_CUDA=ON -DCMAKE_BUILD_TYPE=Release\n```\n\n请注意，如果你遇到 `libnvcuvid.so` 相关的问题（例如参见 [#102](https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\u002Fissues\u002F102)），很可能是缺少该库的链接。你可以手动查找它（`ldconfig -p | grep libnvcuvid`）并将其链接到 `CUDA_TOOLKIT_ROOT_DIR\\lib64`，以便 `decord` 能够顺利检测并链接正确的库。\n\n要指定自定义的 FFMPEG 库路径，使用 `-DFFMPEG_DIR=\u002Fpath\u002Fto\u002Fffmpeg`。\n\n安装 Python 绑定：\n\n```bash\ncd ..\u002Fpython\n# 选项 1：将 Python 路径添加到 $PYTHONPATH，你需要单独安装 numpy\npwd=$PWD\necho \"PYTHONPATH=$PYTHONPATH:$pwd\" >> ~\u002F.bashrc\nsource ~\u002F.bashrc\n# 选项 2：使用 setuptools 安装\npython3 setup.py install --user\n```\n\n#### Mac OS\n\nmacOS 上的安装与 Linux 类似。但 macOS 用户需要先安装 clang、GNU Make 和 cmake 等构建工具。\n\nclang 和 GNU Make 等工具包含在 macOS 的 _Command Line Tools_ 中。安装方法如下：\n\n```bash\nxcode-select --install\n```\n\n要安装其他所需的软件包，如 cmake，建议先安装 Homebrew，这是一个流行的 macOS 包管理器。详细说明可在其[官网](https:\u002F\u002Fbrew.sh\u002F)找到。\n\n安装 Homebrew 后，再安装 cmake 和 ffmpeg：\n\n```bash\nbrew install cmake ffmpeg\n# 注意：确保你有 cmake 3.8 或更高版本，如果太旧，可以从 cmake 官网安装\n```\n\n递归克隆仓库（重要）：\n\n```bash\ngit clone --recursive https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\n```\n\n然后进入根目录构建共享库：\n\n```bash\ncd decord\nmkdir build && cd build\ncmake .. -DCMAKE_BUILD_TYPE=Release\nmake\n```\n\n安装 Python 绑定：\n\n```bash\ncd ..\u002Fpython\n# 选项 1：将 Python 路径添加到 $PYTHONPATH，你需要单独安装 numpy\npwd=$PWD\necho \"PYTHONPATH=$PYTHONPATH:$pwd\" >> ~\u002F.bash_profile\nsource ~\u002F.bash_profile\n# 选项 2：使用 setuptools 安装\npython3 setup.py install --user\n``。\n\n#### Windows\n\n在 Windows 上，你需要 CMake 和 Visual Studio 来进行 C++ 编译。\n\n-   首先，安装 `git`、`cmake`、`ffmpeg` 和 `python`。你可以使用 [Chocolatey](https:\u002F\u002Fchocolatey.org\u002F) 来管理软件包，类似于 Linux\u002FMac OS。\n-   其次，安装 [`Visual Studio 2017 Community`](https:\u002F\u002Fvisualstudio.microsoft.com\u002F)，这可能需要一些时间。\n\n当依赖项准备就绪后，打开命令提示符：\n\n```bash\ncd your-workspace\ngit clone --recursive https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\ncd decord\nmkdir build\ncd build\ncmake -DCMAKE_CXX_FLAGS=\"\u002FDDECORD_EXPORTS\" -DCMAKE_CONFIGURATION_TYPES=\"Release\" -G \"Visual Studio 15 2017 Win64\" ..\n# 打开 `decord.sln` 并构建项目\n```\n\n## 使用\n\nDecord 提供了最小化的 API 集合，方便快速上手。你也可以查看 Jupyter Notebook 中的[示例](examples\u002F)。\n\n### VideoReader\n\nVideoReader 用于直接从视频文件中访问帧。\n\n```python\nfrom decord import VideoReader\nfrom decord import cpu, gpu\n\nvr = VideoReader('examples\u002Fflipping_a_pancake.mkv', ctx=cpu(0))\n# 文件对象同样适用，可用于内存中的解码\nwith open('examples\u002Fflipping_a_pancake.mkv', 'rb') as f:\n  vr = VideoReader(f, ctx=cpu(0))\nprint('视频帧数:', len(vr))\n# 1. 最简单的方式是直接访问帧\nfor i in range(len(vr)):\n    # 视频读取器会以最高效的方式处理寻址和跳过操作\n    frame = vr[i]\n    print(frame.shape)\n\n# 如果需要一次获取多帧，可以使用 get_batch\n# 这是获取大量帧的高效方式\nframes = vr.get_batch([1, 3, 5, 7, 9])\nprint(frames.shape)\n# (5, 240, 320, 3)\n# 重复的帧索引会被接受并在内部处理，以避免重复解码\nframes2 = vr.get_batch([1, 2, 3, 2, 3, 4, 3, 4, 5]).asnumpy()\nprint(frames2.shape)\n# (9, 240, 320, 3)\n\n# 2. 你也可以采用 cv2 风格的读取方式\n# 跳过 100 帧\nvr.skip_frames(100)\n# 寻找开头\nvr.seek(0)\nbatch = vr.next()\nprint('帧形状:', batch.shape)\nprint('numpy 帧:', batch.asnumpy())\n\n```\n\n### VideoLoader\n\nVideoLoader 专为使用大量视频文件训练深度学习模型而设计。它提供了智能的视频打乱技术，以实现高效的随机访问性能（我们知道，在视频中进行定位是非常缓慢且冗余的）。这些优化都隐藏在底层的 C++ 代码中，用户无需感知。\n\n```python\nfrom decord import VideoLoader\nfrom decord import cpu, gpu\n\nvl = VideoLoader(['1.mp4', '2.avi', '3.mpeg'], ctx=[cpu(0)], shape=(2, 320, 240, 3), interval=1, skip=5, shuffle=1)\nprint('总批次数:', len(vl))\n\nfor batch in vl:\n    print(batch[0].shape)\n```\n\n视频的打乱操作可能比较复杂，因此我们提供了多种模式：\n\n```python\nshuffle = -1  # 智能打乱模式，基于视频属性（尚未实现）\nshuffle = 0  # 全部按顺序，不进行定位，按照初始文件名顺序\nshuffle = 1  # 随机文件名顺序，每个视频内部不进行随机访问，非常高效\nshuffle = 2  # 完全随机顺序\nshuffle = 3  # 仅在每个视频内随机访问帧\n```\n\n### AudioReader\n\nAudioReader 用于直接从视频（如果有音频轨道）和音频文件中读取样本。\n\n```python\nfrom decord import AudioReader\nfrom decord import cpu, gpu\n\n# 可以指定所需的采样率和声道布局\n# 声道方面有两个选项：保持原始布局或转换为单声道\nar = AudioReader('example.mp3', ctx=cpu(0), sample_rate=44100, mono=False)\nprint('音频样本的形状: ', ar.shape())\n# 访问音频样本\nprint('第一个样本: ', ar[0])\nprint('前五个样本: ', ar[0:5])\nprint('获取一批样本: ', ar.get_batch([1,3,5]))\n```\n\n### AVReader\n\nAVReader 是 AudioReader 和 VideoReader 的封装器，允许您同时对视频和音频进行切片操作。\n\n```python\nfrom decord import AVReader\nfrom decord import cpu, gpu\n\nav = AVReader('example.mov', ctx=cpu(0))\n# 同时访问视频帧和对应的音频样本\naudio, video = av[0:20]\n# audio 中的每个元素都是与视频帧相对应的一批音频样本\nprint('帧数: ', len(audio))\nprint('第一帧的音频样本形状: ', audio[0].shape)\nprint('第一帧的形状: ', video.asnumpy()[0].shape)\n# 同样地，也可以获取一批数据\naudio2, video2 = av.get_batch([1,3,5])\n```\n\n\n\n## 深度学习框架的桥接：\n\n将 Decord 与流行的深度学习框架连接起来，对于训练和推理非常重要。\n\n- Apache MXNet（已完成）\n- PyTorch（已完成）\n- TensorFlow（已完成）\n\n使用深度学习框架的桥接非常简单，例如，可以将默认张量输出设置为 `mxnet.ndarray`：\n\n```python\nimport decord\nvr = decord.VideoReader('examples\u002Fflipping_a_pancake.mkv')\nprint('原生输出: ', type(vr[0]), vr[0].shape)\n# 原生输出: \u003Cclass 'decord.ndarray.NDArray'>, (240, 426, 3)\n# 只需设置一次输出类型即可\ndecord.bridge.set_bridge('mxnet')\nprint(type(vr[0], vr[0].shape))\n# \u003Cclass 'mxnet.ndarray.ndarray.NDArray'> (240, 426, 3)\n# 或者切换到 PyTorch 和 TensorFlow（>=2.2.0）\ndecord.bridge.set_bridge('torch')\ndecord.bridge.set_bridge('tensorflow')\n# 或者恢复为 Decord 原生格式\ndecord.bridge.set_bridge('native')\n```","# Decord 快速上手指南\n\nDecord 是一个专为深度学习设计的视频处理库，提供基于硬件加速（如 FFMPEG、Nvidia NVDEC）的高效视频随机访问和切片功能。它解决了传统视频读取中随机跳转帧速度慢的问题，特别适合训练需要随机采样帧的神经网络模型。\n\n## 环境准备\n\n### 系统要求\n- **Linux**: 推荐 Ubuntu\u002FDebian 系列\n- **macOS**: >= 10.12\n- **Windows**: 需安装 Visual Studio\n- **Python**: >= 3.5\n\n### 前置依赖\n若需从源码编译以启用 GPU 加速或自定义 FFmpeg 版本，请预先安装以下工具：\n\n**Ubuntu\u002FDebian:**\n```bash\nsudo add-apt-repository ppa:jonathonf\u002Fffmpeg-4\nsudo apt-get update\nsudo apt-get install -y build-essential python3-dev python3-setuptools make cmake\nsudo apt-get install -y ffmpeg libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev\n# 确保 cmake 版本 >= 3.8\n```\n\n**macOS:**\n```bash\nxcode-select --install\nbrew install cmake ffmpeg\n```\n\n**Windows:**\n- 安装 `git`, `cmake`, `ffmpeg`, `python`\n- 安装 `Visual Studio 2017 Community` 或更高版本（包含 C++ 编译环境）\n\n## 安装步骤\n\n### 方式一：通过 pip 安装（仅 CPU 版本）\n最简单的方式，适用于快速体验，但默认不包含 GPU 加速支持。\n\n```bash\npip install decord\n# 国内用户推荐使用清华源加速\npip install decord -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 方式二：从源码编译（支持 GPU 加速）\n\n1. **克隆仓库**（注意必须递归克隆子模块）：\n```bash\ngit clone --recursive https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\ncd decord\n```\n\n2. **编译构建**：\n\n   *Linux (启用 CUDA):*\n   ```bash\n   mkdir build && cd build\n   cmake .. -DUSE_CUDA=ON -DCMAKE_BUILD_TYPE=Release\n   make\n   ```\n\n   *macOS:*\n   ```bash\n   mkdir build && cd build\n   cmake .. -DCMAKE_BUILD_TYPE=Release\n   make\n   ```\n\n   *Windows:*\n   ```bash\n   mkdir build\n   cd build\n   cmake -DCMAKE_CXX_FLAGS=\"\u002FDDECORD_EXPORTS\" -DCMAKE_CONFIGURATION_TYPES=\"Release\" -G \"Visual Studio 15 2017 Win64\" ..\n   # 随后在生成的 decord.sln 中使用 Visual Studio 进行构建\n   ```\n\n3. **安装 Python 绑定**：\n```bash\ncd ..\u002Fpython\npython3 setup.py install --user\n# 或者配置环境变量\npwd=$PWD\necho \"PYTHONPATH=$PYTHONPATH:$pwd\" >> ~\u002F.bashrc\nsource ~\u002F.bashrc\n```\n\n## 基本使用\n\nDecord 提供了简洁的 API 用于读取视频、音频及音视频同步数据。\n\n### 1. 读取视频帧 (VideoReader)\n支持直接索引访问和批量获取，自动处理高效的寻址和跳转。\n\n```python\nfrom decord import VideoReader, cpu\n\n# 初始化读取器\nvr = VideoReader('examples\u002Fflipping_a_pancake.mkv', ctx=cpu(0))\n\n# 获取视频总帧数\nprint('video frames:', len(vr))\n\n# 方式一：直接索引访问单帧\nframe = vr[0]\nprint(frame.shape)\n\n# 方式二：高效批量获取多帧（避免重复解码）\nframes = vr.get_batch([1, 3, 5, 7, 9])\nprint(frames.shape)  # 输出：(5, H, W, 3)\n\n# 方式三：类似 OpenCV 的顺序读取\nvr.seek(0)          # 跳转到开头\nvr.skip_frames(100) # 跳过 100 帧\nbatch = vr.next()   # 读取下一帧\n```\n\n### 2. 深度学习框架桥接\nDecord 原生输出为 `decord.ndarray`，可一键转换为 PyTorch、MXNet 或 TensorFlow 格式。\n\n```python\nimport decord\n\nvr = VideoReader('examples\u002Fflipping_a_pancake.mkv')\n\n# 设置为 PyTorch 后端\ndecord.bridge.set_bridge('torch')\n\n# 此时获取的帧直接为 torch.Tensor\nframe = vr[0]\nprint(type(frame))  # \u003Cclass 'torch.Tensor'>\n\n# 支持的后端：'mxnet', 'tensorflow', 'native'\n```\n\n### 3. 读取音频与音视频同步 (AudioReader & AVReader)\n支持单独提取音频，或同时提取同步的音视频数据。\n\n```python\nfrom decord import AudioReader, AVReader, cpu\n\n# 读取音频\nar = AudioReader('example.mp3', ctx=cpu(0), sample_rate=44100)\nsamples = ar[0:5]\n\n# 同时读取音视频（自动同步）\nav = AVReader('example.mov', ctx=cpu(0))\naudio_batch, video_batch = av[0:20]\n\n# audio_batch 包含对应每一帧视频的音频采样片段\nprint('Frame count:', len(audio_batch))\nprint('Video shape:', video_batch.asnumpy()[0].shape)\n```","某视频内容审核团队正在构建基于深度学习的违规动作识别模型，需要每天对数万段监控视频进行随机帧采样训练。\n\n### 没有 decord 时\n- **读取速度极慢**：使用传统 FFmpeg 或 OpenCV 逐帧解码，面对海量视频数据时，GPU 经常因等待数据而空闲，训练效率低下。\n- **随机访问困难**：深度学习训练需要随机打乱视频片段顺序，传统方法难以高效实现“跳跃式”读取，往往被迫顺序加载后再洗牌，内存占用极高。\n- **音画同步复杂**：若模型需同时分析声音与画面，开发者需自行编写复杂的同步逻辑来分别处理音频和视频流，极易出现声画不同步的 Bug。\n- **硬件加速缺失**：默认方案无法便捷调用 NVIDIA NVDEC 等硬件解码器，导致 CPU 负载长期满载，服务器资源浪费严重。\n\n### 使用 decord 后\n- **吞吐量大幅提升**：decord 底层封装了硬件加速解码器，支持高并发随机读取，使数据加载速度提升数倍，GPU 利用率瞬间跑满。\n- **智能随机切片**：内置的智能洗牌机制允许像读取图片一样轻松随机抽取视频帧，无需预加载整个视频，显著降低内存压力。\n- **音画一键同步**：提供统一的音视频切片接口，单次调用即可返回时间轴严格对齐的视频帧与音频波形，彻底解决同步难题。\n- **无缝集成框架**：原生支持 PyTorch 和 MXNet 等主流框架，只需几行代码即可替换原有 DataLoader，快速启用 GPU 硬解加速。\n\ndecord 通过硬件加速与智能随机访问机制，将繁琐的视频数据处理转化为高效的深度学习输入流，让模型训练不再受限于 I\u002FO 瓶颈。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdmlc_decord_e0febe6f.png","dmlc","Distributed (Deep) Machine Learning Community","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fdmlc_b69cc302.png","A Community of Awesome Machine Learning Projects",null,"https:\u002F\u002Fgithub.com\u002Fdmlc",[83,87,91,95,99,102,106,110,114],{"name":84,"color":85,"percentage":86},"C++","#f34b7d",62.4,{"name":88,"color":89,"percentage":90},"Python","#3572A5",23.4,{"name":92,"color":93,"percentage":94},"C","#555555",6.4,{"name":96,"color":97,"percentage":98},"CMake","#DA3434",3.3,{"name":100,"color":101,"percentage":10},"Cython","#fedf5b",{"name":103,"color":104,"percentage":105},"Shell","#89e051",0.7,{"name":107,"color":108,"percentage":109},"Cuda","#3A4E3A",0.5,{"name":111,"color":112,"percentage":113},"Dockerfile","#384d54",0.2,{"name":115,"color":116,"percentage":117},"Batchfile","#C1F12E",0.1,2458,223,"2026-04-13T02:25:24","Apache-2.0","Linux, macOS (>= 10.12), Windows","非必需。若需启用 GPU 加速解码，需要 NVIDIA GPU 支持 NVDEC，并安装 CUDA Toolkit。具体显存大小和 CUDA 版本未说明，但需确保系统能正确链接 libnvcuvid.so。","未说明",{"notes":126,"python":127,"dependencies":128},"1. PyPI 提供的预编译包仅支持 CPU 版本，如需使用 GPU 硬件加速解码（NVDEC），必须从源码编译安装。2. 源码编译时需使用 `git clone --recursive` 递归克隆仓库以获取子模块。3. Windows 平台编译需要 Visual Studio (如 2017 Community)。4. macOS 用户需通过 Homebrew 安装 cmake 和 ffmpeg。5. 若在 Linux 上遇到 libnvcuvid.so 链接错误，需手动查找该库并将其链接到 CUDA_TOOLKIT_ROOT_DIR\u002Flib64 目录。",">= 3.5",[129,130,131,132,133],"FFMPEG\u002FLibAV (建议版本 >= 4.0)","CMake (>= 3.8)","NumPy","build-essential (Linux)","Xcode Command Line Tools (macOS)",[16],[136],"video-loader","2026-03-27T02:49:30.150509","2026-04-13T17:41:36.210666",[140,145,150,155,160,165],{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},31794,"遇到 'Failed to seek file to position: 0' 错误怎么办？","该问题在 0.4.1 版本中存在，但在后续版本中已修复。建议将 decord 升级到 0.6.0 或更高版本。如果升级后环境出现冲突，建议创建一个新的虚拟环境，并在安装 torch 或 mxnet 之前先安装 decord 0.6.0+。","https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\u002Fissues\u002F100",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},31792,"在 Docker 容器中构建时出现 'cmake fails to find libnvcuvid' 错误如何解决？","这是因为 NVIDIA 驱动提供的库文件名为 `libnvcuvid.so.1`（带版本号），而构建系统通常寻找无后缀的 `libnvcuvid.so`。解决方法是手动创建软链接：\n```bash\nln -s \u002Fusr\u002Flib\u002Fx86_64-linux-gnu\u002Flibnvcuvid.so.1 \u003CYOUR_CUDA_DIR>\u002Flibnvcuvid.so\n```\n此外，确保在 `\u002Fetc\u002Fdocker\u002Fdaemon.json` 中添加 `\"default-runtime\": \"nvidia\"` 并重启 Docker 守护进程，以默认使用 NVIDIA 运行时。","https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\u002Fissues\u002F102",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},31793,"VideoReader 初始化后，何时可以安全地销毁对象？asnumpy() 是否会导致内存复制？","`asnumpy()` 是一个复制操作（copy op），而转换为深度学习框架（如 PyTorch\u002FMXNet）的桥接操作是非复制的（non-copy）。无论哪种情况，一旦帧被获取或转换，它们都会被引用计数保护。因此，您可以尽早销毁 `VideoReader` (vr) 对象，无需担心解码帧的内存被释放，即使 Python 垃圾回收延迟了 C++ 对象的释放也是安全的。","https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\u002Fissues\u002F62",{"id":156,"question_zh":157,"answer_zh":158,"source_url":159},31795,"使用 GPU 上下文初始化 VideoReader 时报错 'CUDAError: cuvidCreateVideoParser' 如何排查？","此错误通常与 NVIDIA 驱动版本和 CUDA 版本的兼容性有关。不同用户报告在 GTX 1080 Ti、V100 和 RTX 8000 上均遇到过此问题。请检查并尝试更新您的 NVIDIA 驱动程序以及 CUDA Toolkit 到兼容的版本组合（例如驱动 440.33+ 配合 CUDA 10.1\u002F10.2）。由于该问题高度依赖硬件和驱动环境，建议参考其他成功运行用户的配置进行比对。","https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\u002Fissues\u002F16",{"id":161,"question_zh":162,"answer_zh":163,"source_url":164},31796,"为什么 decord.VideoReader 读取的帧与 cv2.VideoCapture 读取的结果不一致？","这通常是因为颜色空间格式不同。OpenCV (`cv2.VideoCapture`) 默认读取的图片格式是 BGR，而 decord 读取的是 RGB 格式。在比较两者结果前，需要先将 OpenCV 读取的图像从 BGR 转换为 RGB，或者理解两者通道顺序的差异。","https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\u002Fissues\u002F108",{"id":166,"question_zh":167,"answer_zh":168,"source_url":169},31797,"项目当前维护状态如何？如果原维护者不再活跃该怎么办？","原主要维护者 @zhreshold 已停止维护该项目。社区正在尝试联系 DMLC 组织以指定新的维护者来接受 PR 和修复 Bug。如果短期内没有官方回应，社区成员可能需要考虑 Fork 项目以继续维护和更新构建。","https:\u002F\u002Fgithub.com\u002Fdmlc\u002Fdecord\u002Fissues\u002F214",[171,176,181,186,191,196,201,206,211,216,221,226,231,235,240],{"id":172,"version":173,"summary_zh":174,"released_at":175},239010,"v0.6.0","修复稳定性及 TensorFlow 桥接\n- #140\n- #141\n- #142\n- #151\n- #155\n\n- 修复 Linux 平台的 wheel 包，该包会打包错误的 RECORD 文件。\n- 将 AudioReader 添加到 PYPI 的 wheel 包中。","2021-06-14T20:44:33",{"id":177,"version":178,"summary_zh":179,"released_at":180},239011,"v0.5.2","- 继续修复发布版二进制轮子","2021-02-09T17:50:54",{"id":182,"version":183,"summary_zh":184,"released_at":185},239012,"v0.5.1","修复 manylinux PyPI 轮子中导致安装后 pip 无法正常工作的问题。","2021-02-09T03:31:20",{"id":187,"version":188,"summary_zh":189,"released_at":190},239013,"v0.5.0","- 修复性能问题 #115\r\n- 修复损坏视频导致的卡死问题 #119\r\n- 小幅修复","2021-02-07T07:41:36",{"id":192,"version":193,"summary_zh":194,"released_at":195},239014,"v0.4.2","CUDA 解码器修复 #103","2020-11-13T23:31:56",{"id":197,"version":198,"summary_zh":199,"released_at":200},239015,"v0.4.1","本次发布包含以下修复：\n- #78\n- #82\n- #86","2020-10-01T20:20:42",{"id":202,"version":203,"summary_zh":204,"released_at":205},239016,"v0.4.0","本次发布新增了加载文件类对象的功能。","2020-10-01T20:01:09",{"id":207,"version":208,"summary_zh":209,"released_at":210},239017,"v0.3.9","性能改进：\n- #63\n- #64","2020-05-11T21:29:11",{"id":212,"version":213,"summary_zh":214,"released_at":215},239018,"v0.3.8","- 当视频元数据包含旋转信息时，添加旋转处理逻辑。- 修复导致返回的 PTS 未正确排序的问题。- 添加 TVM 桥接，可在不进行拷贝的情况下转换 ndarray 类型。","2020-05-02T21:31:39",{"id":217,"version":218,"summary_zh":219,"released_at":220},239019,"v0.3.7","- 修复几个内存问题\n- 添加日志选项以屏蔽 FFmpeg 警告","2020-04-28T18:17:44",{"id":222,"version":223,"summary_zh":224,"released_at":225},239020,"v0.3.3","Fix various bugs including python binding usage improvement.","2019-12-20T02:20:49",{"id":227,"version":228,"summary_zh":229,"released_at":230},239021,"v0.3.0","- Improve multithread stability.","2019-10-01T17:46:02",{"id":232,"version":233,"summary_zh":80,"released_at":234},239022,"v0.2.1","2019-09-27T22:07:34",{"id":236,"version":237,"summary_zh":238,"released_at":239},239023,"v0.2.0","# Release Note\r\n\r\n- Fix duplicate indices causing `get_batch` to fail for VideoReader.\r\n- Bump up version to satisfy pypi install","2019-09-27T21:55:02",{"id":241,"version":242,"summary_zh":243,"released_at":244},239024,"v0.1.0","First alpha release for pypi release","2019-09-11T00:31:19"]