文章有点长(3799字阅读时长:13分),期望您能坚持看完,并有所收获我想针对以下几个指标,对三个流行的Rust视频处理库(即ffmpeg-next、opencv、video-rs)进行测试:易用性、易修改性以及速度。请注意,我在Rust方面还是个新手,每个实现过程中可能都存在一些“小问题”。本次任务是提取并保存视频前20秒的视频帧。
遗憾的是,我觉得FFMPEG-Next不是一个好的选择,除非你想深入研究后端视频处理的细节内容。OpenCV虽然由于某些原因速度有点慢,但对于复杂任务来说可能是个更好的选项。由于上面的示例大多是输入输出操作,所以在某些任务(比如计算机视觉相关任务)中,Rust版的OpenCV仍有可能比Python版的OpenCV快得多。 以上就是我的分享。
dump-frames:ffmpeg-next 仓库自带的 example,实现了对输入视频文件的逐帧解码,并保存为图像文件的功能。完整的源码在 rust-ffmpeg/examples/dump-frames.rs at master · zmwangx/rust-ffmpeggithub.com/zmwangx/rust-ffmpeg/blob/master/examples/dump-frames.rs 首先,为crate ffmpeg_next定义别名为ffmpeg,方...
我想针对以下几个指标,对三个流行的Rust视频处理库(即ffmpeg-next、opencv、video-rs)进行测试:易用性、易修改性以及速度。请注意,我在Rust方面还是个新手,每个实现过程中可能都存在一些“小问题”。 本次任务是提取并保存视频前20秒的视频帧。需要注意的是,这算不上一个很好的速度测试,因为大部分处理过程都是输入...
FFMPEG-Next 好吧,我甚至都不太确定该从哪里开始对这个库进行并行化处理。它的代码量明显比另外两个库多得多。我试着像前面两个示例那样使用方法,但没能成功实现。 以下是使用库提取视频帧并保存的代码: 那我试着尽力弄清楚这里面的情况。这里有需要循环处理的数据包,还有一个用于解码帧并保存它的闭包。我可能需...
我们将使用 ffmpeg-next,它是 FFmpeg 的 Rust 绑定,FFmpeg 是一个功能强大的多媒体框架,用于处理视频、音频和其他多媒体文件和流。anyhow crate 可帮助进行错误处理。 实现视频编码和压缩 打开src/main.rs,开始编码! use anyhow::Result; use ffmpeg_next::{codec, format, frame, software, util::dict}; ...
在Rust中调用FFmpeg库可以通过使用Rust的FFmpeg绑定库来实现。以下是详细步骤,包括确定FFmpeg的Rust绑定、添加依赖、编写代码、编译运行以及调试优化。 1. 确定FFmpeg的Rust绑定或接口 在Rust中,有几个流行的库可以用于绑定FFmpeg,例如ffmpeg-sys-next和ffmpeg-next。ffmpeg-next是在ffmpeg-sys-next基础上做了一定抽象和...
尝试运行sudo apt install libadevice-dev。否则,尝试在末尾添加-2.0,-3.16等内容。编辑:如果您...
rust_ffmpeg use-ffmpeg-next hello simple_play Cargo.toml use-ffmpeg-sys-next use-rusty-ffmpeg .gitignore rust_window test_ffmpeg third_party .clang-format .gitignore .gitmodules Breadcrumbs all-in-one-examples /rust_ffmpeg / use-ffmpeg-next/ Directory actions More options Failed to load late...
This crate contains low level bindings to FFmpeg. You're probably interested in the high level bindings instead:ffmpeg-next. A word on versioning: major and minor versions track major and minor versions of FFmpeg, e.g. 4.2.x of this crate has been updated to support the 4.2.x series of...