主程序调用外部ffmpeg的参数设定

文章介绍了如何在Flutter应用中调用ffmpeg进行视频转码,并通过参数-hide_banner屏蔽版本信息,-progress参数监控转码进度,-nostats减少处理输出。通过监听ffmpeg的stderr流,可以捕获并监控转码过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在使用flutter开发项目,涉及到调用ffmpeg进行视频转码,同时希望可以在flutter中对转码进度进行监控。因此特意学习了一下ffmpeg一些特定的参数使用,使得作为外部进程的ffmpeg可以更好的和主程序进行交互,以下是我的一些心得。

1. -hide_banner

hide_banner选项可以屏蔽掉开头那一大串的版本输出,但要注意如果是使用了-version选项还是会输出功能版本等信息。

2. -progress fileName

该选项可以使得ffmpeg将处理过程的详细信息进行输出到一个文件,但如果参数为 - ,则为标准输出流stdout进行输出,输出的形式如下:

frame=0

fps=0.00
stream_0_0_q=0.0
bitrate= 0.9kbits/s
total_size=44
out_time_us=384000
out_time_ms=384000
out_time=00:00:00.384000
dup_frames=0
drop_frames=0
speed=10.9x
progress=continue

这里的progress如果是最后一次输出的话将会是end,另外这个out_time_ms的数值好像有点问题

3. -nostats

该选项可以关闭ffmpeg在处理过程中的输出,可以减少不必要的处理

另外:ffmpeg对信息的输出是stderr流,如果要直接捕获的话应该是监听stderr流,这个可以在log.c的源文件中看到相应的代码。


所以如果我们在程序中通过子进程调用ffmpeg的话,可以通过如下的方式:

ffmpeg -hide_banner -nostats -progress - -i [inputFile] [outputFile]

并监听标准输出流和标准错误流即可进行一定程度上的监控

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值