Если я сконфигурирую 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
, это сработает для моих целей (позволяет кодировать видео h264 с аудио c на videotoolbox Ma c - инструментарий Apple QSV) , но если я отправлю его на любой другой компьютер, кроме того, на котором он был построен, произойдет сбой с чем-то вроде этого:
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 работал ...
На самом деле я создаю приложение C ++ с Staf c библиотеки ffmpeg, но объяснение того, что я делаю, будет очень длинным, и сообщение об ошибке будет точно таким же, если я запусту его на разных машинах, поэтому я лучше проиллюстрирую это на примере самой консольной утилиты ffmpeg.
Какие параметры конфигурации мне нужно сделать, чтобы сделать сборку ffmpeg переносимой, пожалуйста?