在c#中调用ffmpeg

在c#中调用ffmpeg,第1张

using System.Diagnostics

ProcessStartInfo ps = new ProcessStartInfo()

ps.CreateNoWindow = true

ps.WindowStyle = ProcessWindowStyle.Hidden

ps.FileName = "x:\\x\x\唤中x\ffmpeg.exe"

ps.Arguments = "参数"和带山

Process proc=new Process ()

proc.StartInfo=ps

proc.WaitForExit()//不等待行察完成就不调用此方法

proc.Start()

分离某些封装格式(例如MP4/FLV/MKV等)中的H.264的时候,需要首先写入SPS和PPS,否则会导致分离出来的数据没有SPS、PPS而无法播放。H.264码流的SPS和PPS信息存储在伍高AVCodecContext结构体的extradata中。需要使用ffmpeg中名称为“h264_mp4toannexb”的bitstream filter处理。

原有的API已被弃用,喊梁新的API如下:

Query

Setup

Usage

Cleanup

ps: FFmpeg给出的例子中并未while循环调腔渗尺用av_bsf_receive_packet,也未对其flush。

https://blogs.gentoo.org/lu_zero/2016/03/21/bitstream-filtering/

说起homebrew确实是Mac上非常好用的一个工具,像什么CocoPods,node,ffmpeg等等安装都不在话下。不过因为用的是公司的电脑,之前不知道咋折腾把Mac的管理权限都给敏信闹弄没了,啥都安装不了。要解决此问题可以参考以下博客

Mac丢失管理员权限解决办法

homebrew安装命令

使用ffmpeg命令一般有两种方式,第一种是自己编译ffmpeg源码,通过调用ffmpeg的main()函数来执行ffmpeg命令(以后有机会可以写个有关ios上使用ffmpeg命令的博坦裤客)。第二种是直接安装到Mac上,使用终端来管理。

使用homebrew安装ffmpeg

检查ffmpeg是否安装成功

有关ffmpeg安装博客较多,这里就不在赘述。到这里使用ffmpeg给视频加水印的桥罩准备工作就完成了。

相比给视频增加文字水印,图片水印相对简单一些。具体原因后面我会说明。

在视频右下角的添加图片水印

下面来说明一下这条命令中基本参数的含义

至于里面其他参数的意义如[watermark],我个人猜测可能是类似标记之类的东西,方便阅读的(ps:有了解的小伙伴可以告知一声哈)在ffmpeg的文档中也没有找到这个参数。

ffmpeg官方提供了另外一种添加图片水印的方法

在视频右下角的添加图片水印

在视频左下角添加图片水印

参数解析

ffmpeg官方文档实现: ffmpeg文档地址

在视频左上角添加一条白色字体的文字水印

参数说明

然后,执行上面的命令。然鹅出现了以下错误

安装ffmpeg

已经安装过ffmpeg

如果还是安装不上的话可以尝试先执行卸载第三方库的命令

暴力点甚至可以先卸载ffmpeg,再执行以上命令

再来看看ffmpeg支持的类型

接着再执行ffmpeg添加字体水印命令即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8226800.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存