Хочу попросить собрать программу obs-studio для стрим вещания. Это единственная программа приличная программа для linux такого типа. Я пробовал ее собрать сам, но ей нужна библиотека libswresample-devel которая есть в FFMpeg. Собрал FFMpeg, но его библиотеки не хотят ставится если аналогичные libav. Одним словом моего опыта для сборки этой программы не хватит, а программа нужная. На форуме есть мои попытки собрать: http://forum.altlinux.org/index.php/topic,33840.msg253337.html#msg253337 Она собирается на сизифе, для сборки под р7 много устаревшего ПО.
Created attachment 6361 [details] Патч заменяет зависимость libswresampler на libavresampler Патч заменяет зависимость libswresampler на libavresampler, cmake проходит успешно, а сборка обрывается на 2 % [ 2%] Building C object deps/libff/CMakeFiles/libff.dir/libff/ff-clock.c.o /usr/src/RPM/BUILD/obs-studio-0.11.4/deps/libff/libff/ff-clock.c: In function 'ff_clock_start': /usr/src/RPM/BUILD/obs-studio-0.11.4/deps/libff/libff/ff-clock.c:78:5: warning: implicit declaration of function 'av_log' [-Wimplicit-function-declaration] av_log(NULL, AV_LOG_ERROR, "could not start " ^ /usr/src/RPM/BUILD/obs-studio-0.11.4/deps/libff/libff/ff-clock.c:78:18: error: 'AV_LOG_ERROR' undeclared (first use in this function) av_log(NULL, AV_LOG_ERROR, "could not start " ^ /usr/src/RPM/BUILD/obs-studio-0.11.4/deps/libff/libff/ff-clock.c:78:18: note: each undeclared identifier is reported only once for each function it appears in /usr/src/RPM/BUILD/obs-studio-0.11.4/deps/libff/libff/ff-clock.c: In function 'ff_clock_init': /usr/src/RPM/BUILD/obs-studio-0.11.4/deps/libff/libff/ff-clock.c:95:27: warning: implicit declaration of function 'av_mallocz' [-Wimplicit-function-declaration] struct ff_clock *clock = av_mallocz(sizeof(struct ff_clock)); ^ /usr/src/RPM/BUILD/obs-studio-0.11.4/deps/libff/libff/ff-clock.c:95:27: warning: initialization makes pointer from integer without a cast [-Wint-conversion] /usr/src/RPM/BUILD/obs-studio-0.11.4/deps/libff/libff/ff-clock.c:111:2: warning: implicit declaration of function 'av_free' [-Wimplicit-function-declaration] av_free(clock); ^ make[2]: *** [deps/libff/CMakeFiles/libff.dir/libff/ff-clock.c.o] Error 1 make[2]: Leaving directory `/usr/src/RPM/BUILD/obs-studio-0.11.4' make[1]: *** [deps/libff/CMakeFiles/libff.dir/all] Error 2 make[1]: Leaving directory `/usr/src/RPM/BUILD/obs-studio-0.11.4' make: *** [all] Error 2 make: Leaving directory `/usr/src/RPM/BUILD/obs-studio-0.11.4' error: Bad exit status from /usr/src/tmp/rpm-tmp.52599 (%build) Похоже жёстко привязан к ffmpeg и с libav не собрать его так просто.
Created attachment 6362 [details] Спек
Я позже попробую собрать ffmpeg, как альтернативу libav. Пусть будет.
Собралось, не закускается. Вот здесь: https://obsproject.com/forum/threads/build-obs-studio-from-sources-error-x-error-glxbadfbconfig.39915/ пишут, что надо иметь OpenGL 3.2 Вот здесь нужные SRPM и x86_64 RPM: https://yadi.sk/d/d2-vHc7n32bT26 Я собрал библиотеки из FFmpeg, переименовав их в libffavutil, libffavcodec, ... Собирал в 6 этапов. Пробовал сразу все, оно при линковке пишет, что не найдено -lffavutil и др. Когда libffavutil заранее установен, линкуется. Так в 6 этапов Через sed во всех файлах меняются входжения avutil на ffavutil, AVUTIL на FFAVUTIL, avcodec на ffavcodec и т.д. Файлы переименовываются по этой же схеме: s/^(avutil.*)/ff\1/g (но без вариантов рерхнего регистра). Это в исходниках FFmpeg перед сборкой В исходниках obs-studio тоже так делается
> В исходниках obs-studio тоже так делается точнее, там не переименовываются файлы
Кому интересно, попробуйте запустить. Если у вас OpenGL 3.2+, мб будет работать
(In reply to comment #4) > Собралось, не закускается. Вот здесь: > https://obsproject.com/forum/threads/build-obs-studio-from-sources-error-x-error-glxbadfbconfig.39915/ > пишут, что надо иметь OpenGL 3.2 > > Вот здесь нужные SRPM и x86_64 RPM: > https://yadi.sk/d/d2-vHc7n32bT26 Вы под Сизиф собирали? У меня не запускается пишет: Attempted path: share/obs/obs-studio/locale/en-US.ini Attempted path: /usr/share/obs/obs-studio/locale/en-US.ini Attempted path: share/obs/obs-studio/locale.ini Attempted path: /usr/share/obs/obs-studio/locale.ini Attempted path: share/obs/obs-studio/locale/ru-RU.ini Attempted path: /usr/share/obs/obs-studio/locale/ru-RU.ini info: Using preferred locale 'ru-RU' Attempted path: share/obs/obs-studio/themes/Default.qss Attempted path: /usr/share/obs/obs-studio/themes/Default.qss Attempted path: share/obs/obs-studio/license/gplv2.txt Attempted path: /usr/share/obs/obs-studio/license/gplv2.txt info: Processor: 2 logical cores info: Processor: AMD E2-1800 APU with Radeon(tm) HD Graphics info: Physical Memory: 7579MB Total info: Kernel Version: Linux 4.8.11-un-def-alt1 info: Distribution: "Sisyphus" 20161130 info: Portable mode: false QObject::connect: invalid null parameter info: OBS 0.0.1 (linux) info: --------------------------------- info: --------------------------------- info: audio settings reset: samples per sec: 44100 speakers: 2 info: OpenGL version: 3.3 (Core Profile) Mesa 13.0.2 obs: symbol lookup error: /usr/lib64/libffavformat.so.57: undefined symbol: ffavcodec_register_all
Да, собирал под sisyphus, с опцией LDFLAGS=-Wl,--warn-unresolved-symbols, чтобы при линковке отстуствующие функции не вызывали ошибку и с RPM_VERIFY_ELF_METHOD="unresolved=relaxed" в секции %install, чтобы проверки пропустили получившиеся .so и исполняемые файлы. Собранная таким образом программа ffmpeg сразу пишет undefined symbol. obs у меня запускался и писал, что не получилось инициализировать X, я решил, что там нет undefined symbol. Оказалось, есть. Сейчас пробую пересобрать ffmpeg-библиотеки, использую встроенное переименование (опции --progs-suffix= --build-suffix= скрипта configure), без sed
Created attachment 6895 [details] opengl error log Вот этот вывод (вложение), появляется окно Error с текстом Failed to initialize vide: Unspecified error Здесь пишут про OpenGL: https://obsproject.com/forum/threads/build-obs-studio-from-sources-error-x-error-glxbadfbconfig.39915/
Created attachment 6896 [details] obs-studio build log extract вложение = часть log'а сборки obs-studio Пересобрал ffmpeg, собралось всё сразу, без unresolved reference. В obs-studio (см. лог) были unres. ref. для некоторых библиотек (что-то про xcb, XOpenDisplay) У меня так же, как раньше - не работает из-за OpenGL, попробуйте кому интересно https://yadi.sk/d/d2-vHc7n32bT26
(In reply to comment #10) > Created an attachment (id=6896) [details] > obs-studio build log extract > > вложение = часть log'а сборки obs-studio > > Пересобрал ffmpeg, собралось всё сразу, без unresolved reference. В obs-studio > (см. лог) были unres. ref. для некоторых библиотек (что-то про xcb, > XOpenDisplay) > > У меня так же, как раньше - не работает из-за OpenGL, попробуйте кому интересно > > https://yadi.sk/d/d2-vHc7n32bT26 А вот теперь запустилось. Попадут ли пакеты в Сизиф?
> А вот теперь запустилось. Попадут ли пакеты в Сизиф? Должны попасть. Я сейчас не являюсь майнтейнером, учусь собирать. Кто-то ещё, либо я через время, скорее всего, выложит в sisyphus
(In reply to comment #12) > > А вот теперь запустилось. Попадут ли пакеты в Сизиф? > > Должны попасть. Я сейчас не являюсь майнтейнером, учусь собирать. Кто-то ещё, > либо я через время, скорее всего, выложит в sisyphus Да вы уже, по-моему научились! Вы уже начали процесс вступления? Спрашиваю потому как, если бы начали, то логичнее было бы видеть тестовое задание, а не пакеты на яндекс-диске.
> Да вы уже, по-моему научились! Вы уже начали процесс вступления? Спрашиваю > потому как, если бы начали, то логичнее было бы видеть тестовое задание, а не > пакеты на яндекс-диске. http://git.altlinux.org/people/yakonstb/packages/?p=ffmpeg.git;a=summary http://git.altlinux.org/people/yakonstb/packages/?p=obs-studio.git;a=summary Вот, я залил на git.alt эти сборки. Далее надо команду build запускать, но к ней доступ отдельно выдаётся (на другой хост подключаться надо). Пока неизвестно, когда у mike@ будет время посмотреть мои сборки https://bugzilla.altlinux.org/show_bug.cgi?id=32739
Посмотрите кто может из менторов мои сборки, mike@ не успевает
Пока obs-studio не будет. Если меня сделают мантенером, я ге буду выкладывать. просяь ffmpeg не собирать
реопенед
Константин, а не попробуете собрать ещё и под p7? И загляните в тему https://forum.altlinux.org/index.php?topic=34559.0 Если получится, напишите и туда. Спасибо!
added myself to CC собирал под p7, замучался, недособрал новый cmake, который нужен для obs
(В ответ на комментарий №19) > added myself to CC > > собирал под p7, замучался, недособрал новый cmake, который нужен для obs Да, если там такие сложности, надо было сразу бросать. Или как вариант, пробовать собирать одну из предыдущих версий obs, которой не нужен новый cmake.
выкладывайте без меня как я собрал, можно посмотреть вот здесь (использовал ffmpeg, переименованный, лежит там же, импользует новую сборку x265, но можно отключить) https://github.com/konstyab?tab=repositories
*** Bug 33508 has been marked as a duplicate of this bug. ***
obs-studio-19.0.3-alt1 -> sisyphus: * Wed Jul 12 2017 Anton Midyukov <antohami@altlinux> 19.0.3-alt1 - Initial build for ALT Linux Sisyphus (Closes: 30989).
https://lists.altlinux.org/pipermail/devel/2018-June/204781.html