ffmpeg - 在 Debian 发行版上构建 obs-studio 失败
问题描述
喂喂。目前我正在尝试在我的 Debian 机器(Debian Bullseye)上编译 obs-studio。我自己编译了 FFMpeg,以启用对 NVIDIA 硬件加速的 nvenc 支持。现在我尝试编译 obs-studio 但它总是在这个错误中中断:
[ 41%] Built target obs-x264
[ 42%] Built target obs-libfdk
[ 43%] Building C object plugins/obs-ffmpeg/CMakeFiles/obs-ffmpeg.dir/obs-ffmpeg-audio-encoders.c.o
In file included from /tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:27:
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-formats.h:3:47: error: unknown type name ‘AVCodecContext’; did you mean ‘AVFormatContext’?
3 | static inline int64_t rescale_ts(int64_t val, AVCodecContext *context,
| ^~~~~~~~~~~~~~
| AVFormatContext
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c: In function ‘convert_speaker_layout’:
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:65:10: error: ‘AV_CH_LAYOUT_MONO’ undeclared (first use in this function)
65 | return AV_CH_LAYOUT_MONO;
| ^~~~~~~~~~~~~~~~~
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:65:10: note: each undeclared identifier is reported only once for each function it appears in
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:67:10: error: ‘AV_CH_LAYOUT_STEREO’ undeclared (first use in this function)
67 | return AV_CH_LAYOUT_STEREO;
| ^~~~~~~~~~~~~~~~~~~
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:69:10: error: ‘AV_CH_LAYOUT_SURROUND’ undeclared (first use in this function)
69 | return AV_CH_LAYOUT_SURROUND;
| ^~~~~~~~~~~~~~~~~~~~~
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:71:10: error: ‘AV_CH_LAYOUT_4POINT0’ undeclared (first use in this function)
71 | return AV_CH_LAYOUT_4POINT0;
| ^~~~~~~~~~~~~~~~~~~~
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:73:10: error: ‘AV_CH_LAYOUT_4POINT1’ undeclared (first use in this function)
73 | return AV_CH_LAYOUT_4POINT1;
| ^~~~~~~~~~~~~~~~~~~~
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:75:10: error: ‘AV_CH_LAYOUT_5POINT1_BACK’ undeclared (first use in this function)
75 | return AV_CH_LAYOUT_5POINT1_BACK;
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:77:10: error: ‘AV_CH_LAYOUT_7POINT1’ undeclared (first use in this function)
77 | return AV_CH_LAYOUT_7POINT1;
| ^~~~~~~~~~~~~~~~~~~~
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c: In function ‘convert_ff_channel_layout’:
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:88:7: error: ‘AV_CH_LAYOUT_MONO’ undeclared (first use in this function)
88 | case AV_CH_LAYOUT_MONO:
| ^~~~~~~~~~~~~~~~~
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:90:7: error: ‘AV_CH_LAYOUT_STEREO’ undeclared (first use in this function)
90 | case AV_CH_LAYOUT_STEREO:
| ^~~~~~~~~~~~~~~~~~~
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:92:7: error: ‘AV_CH_LAYOUT_SURROUND’ undeclared (first use in this function)
92 | case AV_CH_LAYOUT_SURROUND:
| ^~~~~~~~~~~~~~~~~~~~~
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:94:7: error: ‘AV_CH_LAYOUT_4POINT0’ undeclared (first use in this function)
94 | case AV_CH_LAYOUT_4POINT0:
| ^~~~~~~~~~~~~~~~~~~~
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:96:7: error: ‘AV_CH_LAYOUT_4POINT1’ undeclared (first use in this function)
96 | case AV_CH_LAYOUT_4POINT1:
| ^~~~~~~~~~~~~~~~~~~~
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:98:7: error: ‘AV_CH_LAYOUT_5POINT1_BACK’ undeclared (first use in this function)
98 | case AV_CH_LAYOUT_5POINT1_BACK:
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:100:7: error: ‘AV_CH_LAYOUT_7POINT1’ undeclared (first use in this function)
100 | case AV_CH_LAYOUT_7POINT1:
| ^~~~~~~~~~~~~~~~~~~~
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c: In function ‘enc_create’:
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:205:13: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
205 | enc->codec = avcodec_find_encoder_by_name(type);
| ^
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:209:14: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
209 | enc->codec = avcodec_find_encoder_by_name(alt);
| ^
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c: In function ‘do_encode’:
/tmp/obs-studio/plugins/obs-ffmpeg/obs-ffmpeg-audio-encoders.c:343:16: error: implicit declaration of function ‘rescale_ts’ [-Werror=implicit-function-declaration]
343 | packet->pts = rescale_ts(avpacket.pts, enc->context, time_base);
| ^~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [plugins/obs-ffmpeg/CMakeFiles/obs-ffmpeg.dir/build.make:95: plugins/obs-ffmpeg/CMakeFiles/obs-ffmpeg.dir/obs-ffmpeg-audio-encoders.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1381: plugins/obs-ffmpeg/CMakeFiles/obs-ffmpeg.dir/all] Error 2
make: *** [Makefile:171: all] Error 2
我还没有找到任何修复。所以我认为我很聪明,所以我设置了一个 Debian Sid 虚拟机,而不是使用 git,我使用apt source obs-studio
and apt build-dep obs-studio
. 不幸的是,结果相同,dpkg-buildpackage -rfakeroot -b -uc -us
结果相同,在同一个文件中:obs-ffmpeg-audio-encoders.c
这里可能有什么问题?我错过了一些基本的东西吗?先谢谢朋友!
解决方案
推荐阅读
- python - 在 Python 3.x 中转义特殊字符
- python - 用户创建指定类的对象
- java - 片段中的自定义列表视图。未找到布局
- azure-storage - 使用系统分配的托管标识将 Azure 流分析输出到 Data Lake Storage Gen2
- c++ - 用 C++ 读取文件,包括空格键
- object-detection - 在 sagemaker 中使用带有对象检测 API 的 tensorboard
- python-2.7 - 如何在unittest mock python中使用类变量条件
- jqgrid - jqGrid复选框分组总结
- python - pip 没有在 cmd 中显示
- java - JPA 通过 Api Key 查找返回 null