1

如果我以这种方式配置 ffmpeg:

./configure --disable-everything --enable-static --disable-shared \
--enable-gpl --enable-nonfree --enable-encoder=h264_videotoolbox,aac \ 
--enable-muxer=mp4 --enable-protocol=file --enable-libfdk-aac 
--enable-videotoolbox --disable-autodetect

它适用于我的目的(允许在 Mac 的 videotoolbox - Apple QSV 工具包上使用 aac 音频对 h264 视频进行编码),但如果我将它发送到除了它所构建的计算机之外的任何其他计算机,它会失败,如下所示:

dyld: Symbol not found: _kCVImageBufferTransferFunction_ITU_R_2100_HLG
  Referenced from: /Users/admin/Downloads/./ffmpeg
  Expected in: /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
 in /Users/admin/Downloads/./ffmpeg
Abort trap: 6

如果我以这种方式重建它:

./configure --disable-everything --enable-static --disable-shared
--enable-gpl --enable-nonfree --enable-encoder=aac 
--enable-muxer=mp4 --enable-protocol=file --enable-libfdk-aac 
--disable-autodetect

因此,除了删除 videotoolbox 之外的所有其他内容,它可以在任何其他计算机上成功运行,所以显然 ffmpeg 需要携带它没有的东西,以便 videotoolbox 工作......

我实际上正在使用 ffmpeg 的静态库构建一个 C++ 应用程序,但是解释我所做的将会是一个很长的故事,如果我在不同的机器上运行它产生的错误消息是完全相同的,所以我最好在 ffmpeg 控制台的例子中说明它实用程序本身。

我需要做哪些配置开关才能使 ffmpeg 构建可移植?

4

1 回答 1

0

问题原来是我的macos版本(10.14),提到的API是从10.13开始的,所以它在我尝试的早期版本上不起作用。通过在 10.10 上重建 ffmpeg 修复。

于 2020-01-22T12:43:55.950 回答