新人下载app,立即提现现金 您的好友 送你现金 去提现

波导的效率私房 篇一:第一期:祖宗降临!FFmpeg原来这么强!

波导终结者 09-10 19:23 关注

创作立场声明:全网唯一超强原创干货,能否从那些翻来覆去的云推荐、EXCEL洗稿手里要一个推荐位?

大家好,我是波导终结者。

之前开了一个“早下班”系列,结果我发现,我开了早下班的值无不言,以及早下班EXCEL之类的,屁股后面就跟了一堆“EXCEL早下班值无不言”,把我乐得直不起腰来,也写不动早下班系列了。借着这次达人专栏活动,我另开一个效率私房系列得了。

#波导的效率私房# 第一期:祖宗降临!FFmpeg原来这么强!

波导的效率私房 篇一:第一期:祖宗降临!FFmpeg原来这么强!

关于FFmpeg,我已经不止一次的谈过了,然而很多人对它的强大仍然一无所知。

诚然,它并不是世界上唯一的编码库,但是相对于TMPEGEnc、Adobe等项目,FFmpeg最大的优势当然就是开源免费。来自全世界的各方高手都在为这个库进行维护和更新,自然在各方面都有优势。

波导的效率私房 篇一:第一期:祖宗降临!FFmpeg原来这么强!

不管你用的是免费的转码软件,还是收费的MediaCoder,不管是直播串流软件OBS,还是各大视频下载工具分段下载完成之后合并视频所需的核心部件,甚至音频、图片等软件,很多依赖的都是FFmpeg。比如我之前推荐给大家过的免费开源动图录制、编辑软件ScreenToGif,它就可以调用FFmpeg的GIF模块,而且效果几乎是最好的。

波导的效率私房 篇一:第一期:祖宗降临!FFmpeg原来这么强!

关于FFmpeg怎么使用,也有好几种方式。做开发的朋友,会用代码的方式直接调用FFmpeg库,或者根据自己的软件结构进行重构(比如OBS)。但是一般朋友,在Windows底下还是采用直接EXE文件调用的形式。这方面网上已经有非常多的文章了,我就不重复了,老是洗别人的有意思么~无非就下载官方的安装程序,它会帮你把路径配置好,或者直接下载FFmpeg.exe,然后手动配置。再不济,跟脚本放到同一个目录下也能直接用。

废话不多说,我们直接来进入实战。

一、利用FFmpeg进行重封装

波导的效率私房 篇一:第一期:祖宗降临!FFmpeg原来这么强!

因为有不少相关方面的专业原创,在知乎老是能收到类似问题的推送。

关于容器和编码格式之间的具体定义和区别,这里就简单聊一下。编码格式是你视频用的什么标准压缩,mpeg4,H264,H265等等,音频同理。而容器则是,你用什么标准,把音频和视频整合成一个文件。

同样是H264视频编码,AAC音频编码的内容,它可以灌进MP4容器,AVI容器,FLV容器,MKV、TS等等等等。

理论上,只要容器兼容,音频和视频都可以无损重新封装进另一种容器内(只改后缀是不行的啦,死心吧)。不同容器有各自的特点。比如MP4兼容性好,支持多音轨,但是损坏之后修复困难,FLV则是流媒体标准,现在直播串的流都是这个格式,缺点是不支持多音轨,TS则是广播电视使用的容器,比如你们现在看的IPTV等。

像上图朋友,他做的“转换”,就是重编码,而不是重封装。如果内容或者具体参数不需要改变,重编码是很不划算的行为,不仅慢,而且画质损失也挺明显的。那么什么情况下我们需要重封装呢?仔细想想还是挺多的。一个FLV,你要拉到非线编软件里,你要不要把它变成MP4?一个MP4,你要把它用在数字电视广播上,一样要封装到TS里。

既然是我个人的私房,就不多说废话或者网上抄东西糊弄大家,直接上干货。

波导的效率私房 篇一:第一期:祖宗降临!FFmpeg原来这么强!

BAT脚本文件的语法比较奇葩,你可能觉得图上就两三行,实际要调试一晚上的。

我稍微解释一下这些代码,output那几行,就是建一个output子文件夹用于存放转换后的文件,要不然堆一起就很乱。

set hz=.ts,就是设置一下后缀为TS,到时候FFmpeg会自动识别,封装成TS文件。

for那一行,读取BAT脚本文件同目录下的mp4和ts后畷,并且重封装成TS文件,放到output子文件夹下。因为是重封装,所以视频和音频都不重编码,这里-codec copy是关键,就是把音频和视频全部拷贝。

这样下来就能把mp4文件封装成ts,而反过来操作,就是把ts封装成mp4。由于不重编码,速度非常快,而且音视频质量绝对没有任何损失。

二、FFmpeg强制转码,满足奇葩要求

波导的效率私房 篇一:第一期:祖宗降临!FFmpeg原来这么强!

我曾接到过一个奇葩需求:某甲方他们的设备不行,有的型号的设备解码普通的H264会出现卡顿,硬说是我们内容问题,要求我们降低视频规格,把High 4.1降到Main 3.0。

但是,根据官方规范,1080P(1920X1080)的视频,要Level4以上的规格。大部分的转码软件会自动识别和调整,就算是Premiere和AME,分辨率和Level也有一个底限,选了Level3.0,分辨率就只能到720P,反过来1080P就会自动跳到Level4.0以上规格。

波导的效率私房 篇一:第一期:祖宗降临!FFmpeg原来这么强!

再加上他们还有很多奇葩要求,比如固定码率,而且要显示为CBR,帧数固定25等等,这时候,只能用FFmpeg上了。

核心代码是-c:v libx264 -profile:v main -level 3.0这几个参数,这个时候没有办法重封装了,只能重编码。

不过,-c:a copy至少保证了音频不编码,直接套用(a就是audio的意思)。

-vsync cfr force-cfr=1 -r 25这几个参数保证转出来的视频,帧率那里显示是固定的25,而不是可变帧率,需要的朋友可以拿去用~

三、快速批量减小视频音量

波导的效率私房 篇一:第一期:祖宗降临!FFmpeg原来这么强!

现在有一批视频,甲方突然说,他们的系统有点问题(哦不,他们肯定是说:你们的视频有问题!),音量大了会爆音,要求我们的视频统一压到-10dB,这时候怎么办?

重新做一遍嘛,源那么大早就不在了。重新转码嘛,倒是有工具可以调整音量,但是在视频规格上又不能满足他们的各种要求(见上一条)。

有办法在视频不重编码的情况下,只把音频降低音量,并且重封装吗?当然可以。

波导的效率私房 篇一:第一期:祖宗降临!FFmpeg原来这么强!

核心参数:-filter:a "volume=-10dB",懂点英文的应该知道啥意思了,不罗嗦拿去用。

波导的效率私房 篇一:第一期:祖宗降临!FFmpeg原来这么强!

好了,今天的分享就到这里,各种需求千奇百怪,基本上不是反逻辑的,FFmpeg都能实现,真的是各种转码软件的祖宗,而且还不要钱。大家知道为什么那么多款软件各有优劣吗?因为它们的本质其实也就是封装FFmpeg的参数,而每个作者的理解和经验不同,所以软件就会各有所长。

脚本我会放到度盘里,大家如果有什么需求,点赞关注一下然后留言,这个要求不过份吧?这些东西你全网绝对找不到一个软件能完美实现,找人帮你弄几千块也搞不定的。

感谢观看,点个关注收藏再走呗,我们下期再见。

展开阅读全文

查看更多好文内容,新用户限时领现金
全部评论 (65)
Geek7even
7
09-10 20:52

支持波导,被洗稿云推支配的站里,终于有篇像样的干货了

波导终结者
3
09-11 14:39
ccieuser: 在分辨率和码率之间怎么权衡呢?比如1080p和720p,但前者码率缺只有后者1/2(帧率一样>哪种更清晰一些呢?[期待] 1

H264编码,1080P至少要3-4M,720P至少2M,前提是正常编码(有的烂编码器10M甚至20M都会糊),如果是运动得厉害的,可能得翻倍。所以你要看视频具体内容和码率,比如1M和2M,肯定留2M,因为1M的1080P除了幻灯动画片根本没得看,而10M和20M,不出意外的话1080P基本清晰,肯定留前者。

波导终结者
2
09-11 10:27
Sword_Dance: 上海广电的标清流是mpeg2+mp3简直奇葩 1
波导终结者: 不奇怪,为了设备兼容性,什么事儿都干得出来。我遇过一家,连gop,b帧排列这些都要一帧一帧要求的,折腾了我几个通宵。反正他们是不会承认设备渣的,只能无脑降标准。 2
展开隐藏评论
Sword_Dance: 那是真的惨 3
波导终结者: 哈哈哈哈,为了CBR和固定B帧,画面糊得跟个啥事的~ 4
Sword_Dance: 国内电视是这样的,一动就糊,自带磨皮[尴尬] 5
波导终结者: 是这样的,他们为了保证设备的兼容性,会要求GOP和I帧B帧固定,CBR码率固定,带来的后果就是静的时候码率浪费,动的时候码率不够用……他们只管播放稳定,不管观众观感 6
Sword_Dance: 这样参数的好处是用户端节目切换迅速,缓冲小延时小,对设备性能要求低.数字广播和网络点播视频还是有较多不同点的 7

是的,我就一直在做给他们封装ts的事~各种奇葩要求[傻笑]设备不行,就赖视频

波导终结者
2
09-10 20:57
Geek7even: 支持波导,被洗稿云推支配的站里,终于有篇像样的干货了 1

瞎说什么大实话~

波导终结者
1
09-13 09:01
值友4012209979: 请教大神,录制电视节目为avi或者mp4后剪掉中间广告出现问题,被剪的地方画面卡顿声音不卡,如果逐帧标记后剪虽然剪的地方画面不卡了,但是声音不同步,而且重新压回avi或mp4后文件大小比录制的不剪广告的还大,请教大神满足这样需求的脚本怎么写。 1
波导终结者: 具体是用什么剪的。你如果用非线编剪不应该出现上面俩问题呀。重新压回去文件变大,那就是码率和压缩率问题。视频你每压一遍,都会损失一遍画质,为了保证画面损失尽可能小,只能抬高码率~ 2
展开隐藏评论
值友4012209979: 用ffmpeg,写脚本剪的 3

非流媒无损切片,在切口处是会这样,涉及到文件块和关键帧。你试试先封装成TS、FLV之类的流,再切片合并~

值友4012209979
1
09-12 09:11

请教大神,录制电视节目为avi或者mp4后打算把中间的广告剪掉,出现了剪的地方画面卡顿,如果逐帧标记以后在重新压回avi声音会不同步,而且文件大小比裁剪之前还大。大神请指教一下,脚本怎么写?

波导终结者
1
09-11 09:50
Sword_Dance: 上海广电的标清流是mpeg2+mp3简直奇葩 1
波导终结者: 不奇怪,为了设备兼容性,什么事儿都干得出来。我遇过一家,连gop,b帧排列这些都要一帧一帧要求的,折腾了我几个通宵。反正他们是不会承认设备渣的,只能无脑降标准。 2
展开隐藏评论
Sword_Dance: 那是真的惨 3
波导终结者: 哈哈哈哈,为了CBR和固定B帧,画面糊得跟个啥事的~ 4
Sword_Dance: 国内电视是这样的,一动就糊,自带磨皮[尴尬] 5

是这样的,他们为了保证设备的兼容性,会要求GOP和I帧B帧固定,CBR码率固定,带来的后果就是静的时候码率浪费,动的时候码率不够用……他们只管播放稳定,不管观众观感

波导终结者
1
09-10 22:27
呆头鹅: 另外一个祖宗级牛叉的开源软件是ImageMagick,希望大拿有机会介绍一下 1

到时候我出一篇图片相关的

sdf8057
1
09-10 19:41

我对ffmepg的印象只有emby调用它然后干爆我的内存

波导终结者
0
09-25 10:36
改个名字能不能中奖: 见过大神在命令行下用ffmpeg做监控视频恢复 1

嗯,这个库无所不能,就看用的人了

打开App,查看更多好文和评论
值得买爆款低价
爆款商品抄底,APP内抢购!

市场价
值得买APP专享价
猜你喜欢
查看更多
相关好价
相关商品
查看更多热门商品
社区主页 文章详情
75
459
65
你已经点过赞了
新浪微博 QQ空间 微信好友 豆瓣
当前为触屏版
热门搜索