用于FFmpeg Decoder Wrapper的FFmpeg自编译版本
foobar2000吧
全部回复
仅看楼主
level 1
歳月雲流 楼主
# Intro
因为某种格式的音频文件不能在fb2k中播放,就去搜索了一下,发现了ffmpeg decoder wrapper这个组件,问题解决。但是ffmpeg官网提供的二进制包有点大,而只用于在fb2k中播放音频的话,根本用不到ffmpeg所有的功能,所以就有个这个精简版。在搜索的过程中,还发现了foobaka的作者(@唐人清风)也编译了一个精简版,受foobaka作者的精简版的启发之后,对编译配置做了一些改进,让它更加精简。
# 版本
基于官方提供的最新版(git版)编译。
# 编译环境
Manjaro / GCC-11
# 特点
1. 编码器只有PCM编码器,解码器只有音频格式解码器。
2. 禁用与播放音频完全无关的组件。
3. 启用针对cpu构架的优化(其实就是gcc的march选项)。当然,在播放音乐这个场景下,这点优化只能起点心理安慰的作用。ryzen1用户可以选择zen1版本,其它用户可以选择generic版本。
# 说明
本精简版只能用于在fb2k中播放音频,所以用于其它用途的话,可能会发现根本就没有对应的编解码器和组件。
2021年06月19日 15点06分 1
level 1
[大拇指][大拇指][大拇指]
2021年06月20日 02点06分 2
level 1
恳请下放资源,以供同好欣赏[光棍吃根油条]
2021年06月20日 12点06分 3
链接已补
2021年06月20日 12点06分
level 1
歳月雲流 楼主
# 下载
链接:[无效] https://pan.baidu.com/s/19BebSB80r9RXT4gYSNquIw
提取码:oiu2
复制这段内容后打开百度网盘手机App,操作更方便哦
2021年06月20日 12点06分 4
链接里的文件已经删除了,能不能再发一下
2022年01月28日 17点01分
大佬链接里内容都清空了能重新分享一下吗?谢谢
2023年04月15日 09点04分
level 3
长期更新吗
2021年06月20日 16点06分 5
其实如果只是拿ffmpeg来作音频的解码器的话,更不更新都无所谓,因为像MP3、AAC、FLAC这些格式的解码器都是几年都不更新的,ffmpeg的更新,更多也只是视频编码解码算法的改进、 新格式的编码解码,以及其它组件(比如滤镜、图像缩放算法、 工具函数)。
2021年06月20日 16点06分
但是只要ffmpeg更新了,我就会编译一下新版本,因为我日常要编译程序,编译个ffmpeg只是顺手的事。
2021年06月20日 16点06分
@歳月雲流 试了一下,解DTS不行,用官方 的可以
2021年06月20日 16点06分
@歳月雲流 用ffmpeg-n4.4-72-g91aa49218e-win64-lgpl-shared-4.4.zip,可以,用ffmpeg-build-102754-generic.7z不行
2021年06月20日 17点06分
level 1
歳月雲流 楼主
更新:
1. 版本更新为N-102781-g05f9b3a0a5。
2. 启用了一些常见但被遗漏掉的音频格式的解码器(ape和dts)。
2021年06月21日 02点06分 6
level 1
歳月雲流 楼主
更新:
1. 为更多的cpu添加了对应的优化版,请根据使用的cpu代号选择对应后缀的版本。如果不知道自己的cpu是什么代号,搜索一下就能得到结果了。如果没有对应的代号,请选择相近的版本。其它cpu请选择generic版本。
2021年06月21日 05点06分 7
level 13
好评
2021年06月29日 09点06分 8
level 1
歳月雲流 楼主
顺便做个测试:
official build:
________________________________________________________
Executed in 11.57 secs fish external
usr time 0.32 secs 46.00 millis 0.27 secs
sys time 3.04 secs 953.00 millis 2.08 secs
generic build:
________________________________________________________
Executed in 9.52 secs fish external
usr time 0.27 secs 0.00 secs 0.27 secs
sys time 2.25 secs 1.02 secs 1.23 secs
zen1 build:
________________________________________________________
Executed in 9.35 secs fish external
usr time 0.18 secs 0.02 secs 0.17 secs
sys time 2.17 secs 1.08 secs 1.09 secs
测试条件:
30个flac文件,大于1GiB。
可以看到,相比官方版本,速度确实有一定提升,但是30个文件才快2s,基本可以忽略不计。generic和zen1版本之间的差异太小,可以看作没有差别。
实际上,大部分软件在编译的时候,都会启用可以加速的特性(比如指令集),而常用的那些指令集,现代cpu中基本都有,所以再加个march=native flag,也不会有什么肉眼可见的差别。
2021年06月29日 11点06分 15
level 1
歳月雲流 楼主
changelogs被吞了,看看能不能恢复吧。
2021年06月29日 11点06分 16
level 1
歳月雲流 楼主
刚才在测试播放增益的时候,发现写入播放增益标签的时候会导致音频文件损坏,所以请注意:
如果只是用来播放音频,是安全的;但是要是执行写入操作,比如写入播放增益标签,就会导致文件损坏。更改元数据和嵌入封面是安全的,目前只发现写入播放增益标签会导致损坏。这显然是把ffmpeg阉割得太厉害了。为了安全起见,请暂时不要使用这个版本。
除了昨天上传的版本,其他版本因为缺少dll,根本就不能运行,自然也不用担心。昨天上传的版本已经删除,已经下载的请不要使用。
修复之后会在本贴更新。
2021年06月30日 12点06分 17
level 1
歳月雲流 楼主
更新:
经过测试发现,使用官方版本的FFmpeg时,写入播放增益标签同样会造成文件损坏,所以不是这个ffmpeg精简版的问题。
注意:
在使用FFmpeg Decoder Wrapper时,请不要执行“写入播放增益”等操作,否则会造成音频文件损坏,即使是使用官方版本的ffmpeg,也是如此。
2021年06月30日 13点06分 18
level 1
6.0的有没有
2023年05月01日 00点05分 19
level 1
空空如也[疑问]
2025年08月12日 07点08分 20
1