-
Notifications
You must be signed in to change notification settings - Fork 382
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
新增ffmpeg核心 #307
新增ffmpeg核心 #307
Conversation
我感觉目前IPlayerCore接口设计得不够好,我以后打算让获取音频标签的功能全部由TagLib来实现,而不是由选择的播放内核实现,因此我建议你不用去研究如何通过ffmpeg获取各种音频文件的标签信息了。 |
我主要是为了引入缓冲区以及变速不会变调(使用atempo不会导致声调变化 |
我目前引入了一个15s的缓冲区,打算再写个设置暴露给GUI,让用户可以指定缓冲区长度/大小 ( #288 |
返回正确的位数
|
@lifegpc ffmpeg-core的编译说明可以写详细一点吗,折腾了半天也没搞懂那个pkg-config是怎么用的 |
pkg-config 是这样的 set PKG_CONFIG_PATH=E:/ffmpeg/lib/pkgconfig
cmake -A x64 -DCMAKE_PREFIX_PATH=E:/ffmpeg -DCMAKE_INSTALL_PREFIX=E:/ffmpeg CMakeLists.txt所在目录 -A x64 说明让CMake生成x64的VS项目文件(在Windows上,CMake优先使用VS) |
ffmpeg我是用vs编译的,只有lib和dll文件,要怎么才能生成.pc文件呢 |
你可以自己写,其实MingW shell可以用MSVC编译的(这样就有.pc文件了 |
https://trac.ffmpeg.org/wiki/CompilationGuide/MSVC |
附上我编译时留的笔记 export "LIB=$LIB;E:\shared\MusicPlayer2\lib"
export "INCLUDE=$INCLUDE;E:\shared\MusicPlayer2\include"
export PKG_CONFIG_PATH=/e/shared/MusicPlayer2/lib/pkgconfig
export CFLAGS=-MD
./configure --enable-gpl --enable-shared --disable-static --enable-version3 --prefix=/e/shared/MusicPlayer2 --toolchain=msvc --disable-doc --pkg-config-flags="--env-only" --disable-autodetect --disable-encoders --disable-filters "--enable-filter=volume,atempo,equalizer,aresample" --disable-muxers --enable-bzlib --enable-gnutls --enable-libcdio --enable-zlib |
还有个问题,我注意到 #include "c_linked_list.h"
#include "urlparse.h" 这几个文件你是不忘了提交? |
是一个子仓库 |
好的,明白了 |
现在还有个小问题,得引入精确定位,不然播放cue文件开头一部分播放不到 |
@lifegpc 我建议ffmpeg-core这部分代码还是建一个新的仓库单独存放吧,这个pr就只提交MusicPlayer2部分的代码,一方面是这部分代码对于MusicPlayer2来说是一个独立的模块,另一方面这部分代码可能基本上还是由你来维护,以后提交代码会更方便些。 |
好的,分离好了, |
为MusicPlayer2增加一个调用ffmpeg解码和使用SDL2渲染的核心。
TODOS
volume
filter)atempo
filter)支持混响支持自定义支持格式(目前随便输了几个常见格式)