最好 FFmpeg 给视频 添加水印 添加标注

用FFMPEG 给视频添加水印  

用FFmpeg 给视频添加水印就不多说了,网上有很多,但是添加完水印之后,视频的质量会发生变化,要么变小了,要么变得是原来码率的2倍。

这个问题困扰了我好久,最后发现在用这个命令的时候记得将其码率也一同设置出来。

 

D:/ffmpeg.exe -y -i D:/A.mp4 -vf "movie=aaa.png [wm];[in][wm] overlay=5:5:enable='between(t,1,3)'"  -b:v 1024k D:/b.mp4

 

注:-b 指的是设置码率,

        -b:v 指得是设置视频的码率

        -b:a 指的是设置音频的码率

 

下面是我的一段程序:
		        MediaInfo MI;
		MI.Open(copying_path.toStdWString()); // 打开视频
 		std::wstring strOverallbitRate = MI.Get(Stream_General,0,QString("OverallBitRate").toStdWString()); // 获取overallBitRate
		std::string ssOBR = RD::ws2s(strOverallbitRate);
		QString strOBR = QString(ssOBR.c_str());
		int nOverallBitRate =strOBR.toInt(); // 得到int的好计算
		MI.Close();
		QString qsORB = QString("%1k").arg((int)(nOverallBitRate/1000)); // 这里弄出来是1045k 
		QStringList qlTag;
		QString temp_name = iter->nName;
		int start_time = iter->nStartTime;
		int end_time = iter->nEndTime;
		QString aa = QString("movie=%1 [wm];[in][wm] overlay=5:5:enable='between(t,%2,%3)'").arg(temp_name).arg(start_time).arg(end_time);
		//调用命令
		qlTag<<"-y"<<"-i"<<copying_path<<"-vf"<<aa<<"-b:v"<<qsORB<<filename; // 注意这里要分开这里- 尤其注意这里QStringList的用法
		q_Process.start(m_FFmpegPath,qlTag);	
		q_Process.waitForFinished(60000);  // 记住这些东西,这里最好设置一个时间,要不会有问题等不到。
用mediainfo 获取到视频的码率,添加水印时用上这个码率,以保证新的视频的质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值