文件交换

图片缩略图

FFmpeg工具箱

版本2.2.1.1(181 kB) Kesh Ikuma
一组包装函数直接从Matlab运行FFmpeg
4.3
6评级

37下载

更新2018年7月13日

查看版本历史记录

查看许可协议

FFmpeg (http://ffmpeg.org/)是一个完整的跨平台解决方案,用于记录,转换和流音频和视频。FFMPEG工具箱旨在将FFMPEG功能带到MATLAB。虽然FFMPEG支持大量的金宝app多媒体格式和编解码器,但FFMPEG工具箱带来了与其输出选项参数更接近用户的选定的少数(MP3,AAC,MPEG4,X264,Animated GIF)。
安装
要使用这个工具箱,FFmpeg二进制文件必须已经下载并在PC上可用。(例如,在Windows中,ffmpeg.exe必须可用)。在MATLAB中,运行工具箱安装m-file (ffmpegsetup.m)并遵循其指令。注意,如果PC上其他地方放置了较新的FFmpeg版本,则必须重新运行ffmpegsetup来指定与工具箱一起使用的是哪个FFmpeg可执行文件。
例1。转换AVI电影文件的MP4与AAC音频编解码器和x264视频编解码器:
ffmpegtranscode(“输入。avi”、“output.mp4”、“AudioCodec”、“aac”、“VideoCodec”、“x264”);

示例2.要创建运行的正文的动画GIF:

t = linspace(0,1,1001);
phi = linspace(0,2 * pi,21);
图;
对于n = 1:numel(phi)
绘图(T,SIN(2 * PI * T + PHI(N)))
打印(' - dpng',sprintf('test%02d.png',n));%创建一个中间PNG文件
结束
ffmpegimages2video(“测试% 02 d.png’,‘sinedemo.gif’,‘InputFrameRate’,5,……
'videocodec','gif','deletesource','开');

例3:在视频上覆盖一个透明蒙版

videofile =“video.mp4”;
maskfile ='mask.png';与Video.mp4帧相同的大小
filtgraph = [ffmpegfilter.head ffmpegfilter.overlay ffmpegfilter.tail];
filtgraph (1) . link (filtgraph (2), 0: v);% video.mp4为主
filtgraph (1) . link (filtgraph (2), 1: v, true);% mask.png作为叠加
filtgraph(2).link(filtgraph(3));
ffmpegcombine({“videofile.mp4”“maskfile”},output.mp4, filtgraph);

工具箱函数和类列表:

工具箱设置
ffmpegsetup—要使用这个工具箱,首先运行这个

FFMPEG功能列表功能
ffmpegcodecs -获取支持的视金宝app频编解码器
将颜色表达式从MATLAB转换为FFmpeg
ffmpegcolors -获取FFmpeg颜色名称及其RGB值
ffmpegformats—获取多媒体文件格式
ffmpegpixfmts - 得到支持金宝app的视频像素格式

FFmpeg包装器函数
ffmpegextract—从媒体文件中提取流
ffmpegimage2video - 从一系列图像创建视频文件
ffmpeginfo - 检索媒体文件信息
ffmpegtranscode - 转码介质文件(支持裁剪和缩放)金宝app
ffmpegcombine -用一个过滤器对多个媒体文件进行筛选

FFmpeg滤波器生成函数
ffmpegfiltersvideotform - 应用一系列空间转换
ffmpegfilterspalette -生成和应用256色调色板

FFmpeg filters (FFmpeg filter package)
ffmpegfilter。庄稼- Crop video
ffmpegfilter。hflip- Flip video horizontally
ffmpegfilter。histeq- Apply global color histogram equalization
ffmpegfilter。空值- Pass through
ffmpegfilter.overlay - 覆盖另一个视频
ffmpegfilter.pad - 垫视频
ffmpegfilter。PALETTEGEN.- Generate a 256-color palette for a video
ffmpegfilter.paletteuse - 使用调色板减少视频中的颜色
ffmpegfilter.rotate - 旋转视频
ffmpegfilter。规模- Scale or resize video
ffmpegfilter。塞尔达- Change display-aspect-ratio (DAR) setting
ffmpegfilter。象牙- Change sample-aspect-ratio (SAR) setting
ffmpegfilter。分裂- Split into several identical outputs
ffmpegfilter。翻倒- Transpose rows of video with columns
ffmpegfilter.vlip - 垂直翻转视频

ffmpegfilter.head - 滤波器的开始(每个过滤器图一个)
ffmpegfilter。尾巴- End of filtergraph (one per filtergraph)
ffmpegfilter.base - 所有ffmpegfilter类的基类

低级的FFmpeg包装函数
ffmpegexecargs -使用自定义选项结构运行FFmpeg
ffmpegexec -使用自定义参数string运行FFmpeg

引用

kesh ikuma(2021)。FFmpeg工具箱(//www.tatmou.com/matlabcentral/fileexchange/42296-ffmpeg-toolbox),Matlab中央文件交换。检索到

意见及评分(24.

Petar Raykov.

伊恩Esten

在R2018b中,isfullpath不工作。最后一行期望从regex输出一个单元格,但得到一个double。我不确定多路径的意图,但将第32行更改为:
tf =〜isempty(Regexp(路径,Cond,'一次'));
作品。

Faxal Axim.

先生,我需要H.265 Matlab代码

本股票

谢谢你做这个!

ffmpegimages2video不接受视频作为最新版本的输入

Kesh Ikuma

@maharani meidy -不幸的是,我不打算实现任何其他内置的编解码器选项。但你可以运行任何你想运行的,通过使用。查找用于在线执行x265编码的命令行参数,并在Matlab中构建命令行字符串,并用它运行ffmpegexec。

Maharani Meidy.

如何在x265上使用它?

Kesh Ikuma

@Luca -不幸的是没有…在这一点上。我正在积极开发一个基于ffmpeg的视频阅读器类,作为这个类的新添加,但它的发布日期仍然是待定的。过几个月再来看看它是否上市了。

卢卡Marogna

首先,非常感谢为ffmpeg开发了这样一个有用的界面!

我想知道是否有可能从一个视频中提取一个特定的帧?
我只需要寻找视频文件并提取特定帧的RGB内容,旨在将结果视为Matlab工作区,避免需要将结果写入文件并之后读取它(以便有更快的执行)。

提前谢谢了。

Kesh Ikuma

@Arnaud - AFAIK,不,FFmpeg(可执行文件而不是API库)只是一个脱机转码器。但谁知道呢,这很有可能。你需要去拜访www.ffmpeg.org看看ffmpeg是否支持您想要做的金宝app事情,如果支持,如何从命令提示符/终端运行ffmpeg。一旦你弄清楚了,你就可以在MATLAB中使用这个工具箱的ffmpegexec函数做同样的事情。

arnaud tullio

我的意思是,在8或16位中转换实时视频10位,以在视频播放器中显示它没有黑屏

arnaud tullio

是否有可能转换一个实时视频与这个工具箱?

Kesh Ikuma

@Sajad -是的,FFmpeg二进制支持它。金宝app不过,我要过一段时间才能拿到。您可以了解如何使用ffmpegexec或ffmpegexecargs在MATLAB中执行H.265转码。

Sajad Sadeghkhani

有没有可能让它在windows操作系统下处理H.265 ?

Sajad Sadeghkhani

Josh Shagam

阿沙玛

是否有一种方法可以为.mov文件转换为.ogg或.ogv文件?

Kesh Ikuma

@Ganesh -刚刚用丢失的文件更新了提交。让我知道它是否修好了。

Ganesh K Davanagege.

当我运行这段代码时,

ffmpegtranscode('rhinos.avi','outcum.mp4','audiocodec','aac','videocodec','x264');

我正在收到这样的错误。

未定义函数'isfullpath'用于输入char类型参数。

请指导我。

穆罕默德ata

我不能找到exe文件在提取的文件,所以哪里是exe文件

Kesh Ikuma

@Dinesh - PixelType bug已经在最新版本修复;谢谢你的报道。

AVI文件头问题超出了我的控制范围,你应该向FFmpeg开发团队报告它(并使用他们的最新版本)。要找出由ffmpeg工具箱函数调用的确切的ffmpeg命令行,在ffmpegexec的第39行('system' call)上放置一个断点。M并检查'cmd'变量的字符串值。

Dinesh Iyer.

当我试图从文件中提取视音流为原始AVI时,我注意到流格式头中的biccompression字段不是BI_UNCOMPRESSED,而是设置为“BGR”。这防止它被打开在任何播放器,如VLC或媒体播放器。我使用VirtualDub打开输出的AVI文件,并使用十六进制编辑器编辑值,它修复了问题。

此外,在提取视频流时将PixelType设置为RGB444LE导致错误。
ffmpegextract(fullfile(pwd,'myfile.mov'),fullfile(tempdir,'myrgbfile.avi'),'视频','videocodec','Raw','Range',[0 1],'单位',',',',',',','秒','pixelformat','rgb444le')

Kesh Ikuma

@evegeny - 这是奇特的。我刚刚将我的ffmpeg更新到最新版本,它仍然有效,但我不在Mac中运行matlab,所以你需要帮助我这里(当然只有你有兴趣)。您是否可以使用第46行中的断点设置ffmpegsetup,并告诉我从系统调用返回的“失败”和“msg”值?

谢谢

Evgeny

在指定可执行文件后运行ffmpegsetup.m时,我会出错

> > ffmpegsetup
/usr/local/ cellar /ffmpeg/2.4.2/bin/ffmpeg -version: Trace/breakpoint trap
指定的FFMPEG可执行文件无效。
使用ffmpegsetup(第58行)错误
找不到FFMPEG可执行文件。

同时在Bash终端运行相同的命令时,我得到了正确的输出。

OS X 10.9.5, Matlab R2014a 64bit, ffmpeg 2.4.2

bharath

Matlab释放兼容性
用R2013A创建
与任何版本兼容
平台的兼容性
视窗 macOS Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!