Skip to content
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

Include compilation option to use libav instead of ffmpeg #9

Closed
tkoehlmann opened this issue Dec 21, 2013 · 6 comments
Closed

Include compilation option to use libav instead of ffmpeg #9

tkoehlmann opened this issue Dec 21, 2013 · 6 comments

Comments

@tkoehlmann
Copy link

I tried to compile it on Debian (and basically Ubuntu, too) but they switched away from ffmpeg to libav. So I can't build it because libswresample just doesn't exist (but libavresample does).
Unfortunately my knowledge on both ffmpeg/libav and cmake is rather limited, but is it possible to add a compilation option (and a lot of ifdefs) to choose which one to use?

@sztanpet
Copy link
Contributor

the solution here is to fix the distro package to use something from this decade (and not install something under the name ffmpeg if its not actually ffmpeg and isnt even compatible) and not work around it in obs imo, but Jim is the authority in this

@tkoehlmann
Copy link
Author

libav is a fork by some of the ffmpeg developers, so it's actually newer than ffmpeg.

@ghost
Copy link

ghost commented Dec 21, 2013

The Debian maintainer isn't interested in switching back to ffmpeg, so the solution for now is to use deb-multimedia.org repository.

@sztanpet
Copy link
Contributor

irrelevant if its not compatible

the last time I looked, the ffmpeg package that was actually libav was from 2009 in the ubuntu lts repo

@jp9000
Copy link
Member

jp9000 commented Dec 21, 2013

If you download the latest ffmpeg repo and do a proper make install, you would have no issues compiling obs-studio.

I don't know exactly where you got this idea that libav is newer, perhaps it was from the "deprecation" lie that was spread, but it's definitely untrue. They both have constant updates and include code from each other's projects. The blatant lie which some libav supporter spread about ffmpeg being "deprecated" is probably one of the most heinous things I've ever encountered in my life, and that person should probably be barred from ever being able to maintain packages again. I understand that a fork occurred and that there were disagreements between the two sides, but that crosses the line.

That being said, if it's not too much work to maintain the ability to allow either, then that I will probably try to make it an option in the future, but currently I am focusing on actually building the program itself, I am not going to add support for libav right now if that turns out to be the case.

However, if I determine that maintaining code to use both is more trouble than it's worth, and I have no other people willing to take up that task, then I will unfortunately have to choose a side, you must realize that. I am one single human being, and I can only do so much work.

@tkoehlmann
Copy link
Author

Good points, thanks for the feedback. I guess I'll see how well ffmpeg is still compatible with Ubuntu and Debian.

Waik0 added a commit to Waik0/obs-studio that referenced this issue May 1, 2020
# This is the 1st commit message:

rtmp-services: Modify showroom setting

Change recommend format and url.
Extend curl Timeout span.

# This is the commit message obsproject#2:

rtmp-services: remove unused code

# This is the commit message obsproject#3:

rtmp-services: showroom support autoconfig ui

# This is the commit message obsproject#4:

rtmp-services: clang format

# This is the commit message obsproject#5:

rtmp-services: Add WASDTV (obsproject#2697)


# This is the commit message obsproject#6:

CI: Add freetype dep on osx


# This is the commit message obsproject#7:

libobs: Fix plugin folder search path case on macOS

# This is the commit message obsproject#8:

linux-v4l2: Fix build with Clang 10.0

add_control_property() was previously static inline bool, but did not
return a value and failed to build on FreeBSD-CURRENT with Clang 10.0,
with:

error: non-void function 'add_control_property' should return a value

# This is the commit message obsproject#9:

CI: Add qt5-xml package for FreeBSD build task

# This is the commit message obsproject#10:

rtmp-services: Update ChathostessModels service (obsproject#2745)


# This is the commit message obsproject#11:

libobs: Don't save removed sources

# This is the commit message obsproject#12:

obs-ffmpeg: Fix media source not closing file when inactive

# This is the commit message obsproject#13:

obs-browser: Fix formatting

# This is the commit message obsproject#14:

obs-vst: Fix formatting

# This is the commit message obsproject#15:

obs-qsv11: Enable QSV texture-based encoding

Enables a pipeline for texture-based encoding with QSV. Utilizes OBS
NV12 output for encode to avoid offloading them from GPU, which will
increase performance. The option to select old QSV pipeline still
remains and will fallback if new pipeline fails.

# This is the commit message obsproject#16:

UI: Remove all scenes in ClearSceneData

# This is the commit message obsproject#17:

UI: Fix previewLabel styling

Label renders with default styling instead of using dynamic property
because it was already polished.

# This is the commit message obsproject#18:

docs/sphinx: Add Property Grouping

# This is the commit message obsproject#19:

plugins: Build ALSA plugin for FreeBSD

Signed-off-by: Hans Petter Selasky <hps@selasky.org>

# This is the commit message obsproject#20:

UI: Adjust a few margins

-Remove 9px margins around central widget. This saves 18px of vertical
space. This will be helpful when the source context menu is added,
which is 24px tall.

-Adjusts margins in transitions dock. The top of the transitions dock
wasn't lined up with the top of the controls dock, which made it look
bad.

# This is the commit message obsproject#21:

UI: Add status icons for recording and streaming

# This is the commit message obsproject#22:

CMake: Build Windows modules with file descriptors

# This is the commit message obsproject#23:

mac-capture: Use window id to identify windows on MacOS

Use a window's window id in init_window in the mac window capture plugin.

# This is the commit message obsproject#24:

mac-capture: Only find window by window id when owner name and pid match

# This is the commit message obsproject#25:

mac-capture: Use int in place of NSNumber for owner_pid

# This is the commit message obsproject#26:

mac-capture: update owner_pid in `update_window`

# This is the commit message obsproject#27:

CI: Add main Github Actions workflow for branch pushes and PRs

# This is the commit message obsproject#28:

UI: Remove unnecessary global variables

# This is the commit message obsproject#29:

Revert "UI: Remove unnecessary global variables"

This reverts commit f91d3ba.

From @pkv: the reason some of these vars were global is because Qt was not deleting them at all; as a result memory leaks have been reintroduced for: previewProjector, trayMenu, studioProgramProjector, multiviewProjectorMenu ;

# This is the commit message obsproject#30:

libobs-opengl: Fix viewport flip

Flip viewport in coordination with update_viewproj_matrix.

# This is the commit message obsproject#31:

UI: Add white icons for dock titles

- Add pop-out and close svg icons
- Update all dark themes qss with the new icons

# This is the commit message obsproject#32:

rtmp-services: Change Stripchat streaming service
Waik0 added a commit to Waik0/obs-studio that referenced this issue May 1, 2020
# This is the 1st commit message:

rtmp-services: Modify showroom setting

Change recommend format and url.
Extend curl Timeout span.

# This is the commit message obsproject#2:

rtmp-services: remove unused code

# This is the commit message obsproject#3:

rtmp-services: showroom support autoconfig ui

# This is the commit message obsproject#4:

rtmp-services: clang format

# This is the commit message obsproject#5:

rtmp-services: Add WASDTV (obsproject#2697)


# This is the commit message obsproject#6:

CI: Add freetype dep on osx


# This is the commit message obsproject#7:

libobs: Fix plugin folder search path case on macOS

# This is the commit message obsproject#8:

linux-v4l2: Fix build with Clang 10.0

add_control_property() was previously static inline bool, but did not
return a value and failed to build on FreeBSD-CURRENT with Clang 10.0,
with:

error: non-void function 'add_control_property' should return a value

# This is the commit message obsproject#9:

CI: Add qt5-xml package for FreeBSD build task

# This is the commit message obsproject#10:

rtmp-services: Update ChathostessModels service (obsproject#2745)


# This is the commit message obsproject#11:

libobs: Don't save removed sources

# This is the commit message obsproject#12:

obs-ffmpeg: Fix media source not closing file when inactive

# This is the commit message obsproject#13:

obs-browser: Fix formatting

# This is the commit message obsproject#14:

obs-vst: Fix formatting

# This is the commit message obsproject#15:

obs-qsv11: Enable QSV texture-based encoding

Enables a pipeline for texture-based encoding with QSV. Utilizes OBS
NV12 output for encode to avoid offloading them from GPU, which will
increase performance. The option to select old QSV pipeline still
remains and will fallback if new pipeline fails.

# This is the commit message obsproject#16:

UI: Remove all scenes in ClearSceneData

# This is the commit message obsproject#17:

UI: Fix previewLabel styling

Label renders with default styling instead of using dynamic property
because it was already polished.

# This is the commit message obsproject#18:

docs/sphinx: Add Property Grouping

# This is the commit message obsproject#19:

plugins: Build ALSA plugin for FreeBSD

Signed-off-by: Hans Petter Selasky <hps@selasky.org>

# This is the commit message obsproject#20:

UI: Adjust a few margins

-Remove 9px margins around central widget. This saves 18px of vertical
space. This will be helpful when the source context menu is added,
which is 24px tall.

-Adjusts margins in transitions dock. The top of the transitions dock
wasn't lined up with the top of the controls dock, which made it look
bad.

# This is the commit message obsproject#21:

UI: Add status icons for recording and streaming

# This is the commit message obsproject#22:

CMake: Build Windows modules with file descriptors

# This is the commit message obsproject#23:

mac-capture: Use window id to identify windows on MacOS

Use a window's window id in init_window in the mac window capture plugin.

# This is the commit message obsproject#24:

mac-capture: Only find window by window id when owner name and pid match

# This is the commit message obsproject#25:

mac-capture: Use int in place of NSNumber for owner_pid

# This is the commit message obsproject#26:

mac-capture: update owner_pid in `update_window`

# This is the commit message obsproject#27:

CI: Add main Github Actions workflow for branch pushes and PRs

# This is the commit message obsproject#28:

UI: Remove unnecessary global variables

# This is the commit message obsproject#29:

Revert "UI: Remove unnecessary global variables"

This reverts commit f91d3ba.

From @pkv: the reason some of these vars were global is because Qt was not deleting them at all; as a result memory leaks have been reintroduced for: previewProjector, trayMenu, studioProgramProjector, multiviewProjectorMenu ;

# This is the commit message obsproject#30:

libobs-opengl: Fix viewport flip

Flip viewport in coordination with update_viewproj_matrix.

# This is the commit message obsproject#31:

UI: Add white icons for dock titles

- Add pop-out and close svg icons
- Update all dark themes qss with the new icons

# This is the commit message obsproject#32:

rtmp-services: Change Stripchat streaming service

# This is the commit message obsproject#33:

rtmp-services: Add VirtWish service

# This is the commit message obsproject#34:

UI: Update OSX to macOS in English translation

# This is the commit message obsproject#35:

obs-browser, obs-vst: Fix formatting

# This is the commit message obsproject#36:

CI: Fix Azure Pipelines macOS runs

# This is the commit message obsproject#37:

obs-filters: Add a user label to the LUT filter

While discussing the Flatpak RFC [1], it was spotted that the
LUT filter couldn't open the file selection dialog. It was
explained, then, that the proper formats were either composed
of "User Label (file extensions)", or "file extensions", and
the LUT filter was setting "(file extensions)" without the
actual user label.

While this works on a standard Qt file selection dialog, it
cannot be properly formatted as a set of D-Bus filters, thus
breaking the sandbox integration.

Add a simple user label to the LUT file filter.

[1] obsproject/rfcs#21 (comment)

# This is the commit message obsproject#38:

UI: Remove requirement for replay buffer hotkey

Fixes obsproject#2807

# This is the commit message obsproject#39:

obs-ffmpeg: Log why new NVENC might not be used

# This is the commit message obsproject#40:

obs-ffmpeg: Preserve error message from new NVENC

If we fallback to ffmpeg NVENC, the error from new NVENC might still be
present in the encoder structure. Given that this provides a lot more
actionable information to the user, let's use it if possible.

# This is the commit message obsproject#41:

libobs: Clear last error on encoder shutdown

This fixes an issue where an encoder may error out on a path that
doesn't use obs_encoder_set_last_error, resulting in a stale error being
used.

# This is the commit message obsproject#42:

obs-ffmpeg: Add localization for NVENC error messages

# This is the commit message obsproject#43:

obs-ffmpeg: Add error message for non-zero GPU

# This is the commit message obsproject#44:

CI: Update macOS deps to fix lua

# This is the commit message obsproject#45:

vlc-video: Enable building the plugin on FreeBSD
Waik0 added a commit to Waik0/obs-studio that referenced this issue May 1, 2020
# This is the 1st commit message:

rtmp-services: add showroom setting

# This is the commit message obsproject#2:

rtmp-services: Modify showroom setting

Change recommend format and url.
Extend curl Timeout span.

# This is the commit message obsproject#3:

rtmp-services: remove unused code

# This is the commit message obsproject#4:

rtmp-services: showroom support autoconfig ui

# This is the commit message obsproject#5:

rtmp-services: clang format

# This is the commit message obsproject#6:

rtmp-services: Add WASDTV (obsproject#2697)


# This is the commit message obsproject#7:

CI: Add freetype dep on osx


# This is the commit message obsproject#8:

libobs: Fix plugin folder search path case on macOS

# This is the commit message obsproject#9:

linux-v4l2: Fix build with Clang 10.0

add_control_property() was previously static inline bool, but did not
return a value and failed to build on FreeBSD-CURRENT with Clang 10.0,
with:

error: non-void function 'add_control_property' should return a value

# This is the commit message obsproject#10:

CI: Add qt5-xml package for FreeBSD build task

# This is the commit message obsproject#11:

rtmp-services: Update ChathostessModels service (obsproject#2745)


# This is the commit message obsproject#12:

libobs: Don't save removed sources

# This is the commit message obsproject#13:

obs-ffmpeg: Fix media source not closing file when inactive

# This is the commit message obsproject#14:

obs-browser: Fix formatting

# This is the commit message obsproject#15:

obs-vst: Fix formatting

# This is the commit message obsproject#16:

obs-qsv11: Enable QSV texture-based encoding

Enables a pipeline for texture-based encoding with QSV. Utilizes OBS
NV12 output for encode to avoid offloading them from GPU, which will
increase performance. The option to select old QSV pipeline still
remains and will fallback if new pipeline fails.

# This is the commit message obsproject#17:

UI: Remove all scenes in ClearSceneData

# This is the commit message obsproject#18:

UI: Fix previewLabel styling

Label renders with default styling instead of using dynamic property
because it was already polished.

# This is the commit message obsproject#19:

docs/sphinx: Add Property Grouping

# This is the commit message obsproject#20:

plugins: Build ALSA plugin for FreeBSD

Signed-off-by: Hans Petter Selasky <hps@selasky.org>

# This is the commit message obsproject#21:

UI: Adjust a few margins

-Remove 9px margins around central widget. This saves 18px of vertical
space. This will be helpful when the source context menu is added,
which is 24px tall.

-Adjusts margins in transitions dock. The top of the transitions dock
wasn't lined up with the top of the controls dock, which made it look
bad.

# This is the commit message obsproject#22:

UI: Add status icons for recording and streaming

# This is the commit message obsproject#23:

CMake: Build Windows modules with file descriptors

# This is the commit message obsproject#24:

mac-capture: Use window id to identify windows on MacOS

Use a window's window id in init_window in the mac window capture plugin.

# This is the commit message obsproject#25:

mac-capture: Only find window by window id when owner name and pid match

# This is the commit message obsproject#26:

mac-capture: Use int in place of NSNumber for owner_pid

# This is the commit message obsproject#27:

mac-capture: update owner_pid in `update_window`

# This is the commit message obsproject#28:

CI: Add main Github Actions workflow for branch pushes and PRs

# This is the commit message obsproject#29:

UI: Remove unnecessary global variables

# This is the commit message obsproject#30:

Revert "UI: Remove unnecessary global variables"

This reverts commit f91d3ba.

From @pkv: the reason some of these vars were global is because Qt was not deleting them at all; as a result memory leaks have been reintroduced for: previewProjector, trayMenu, studioProgramProjector, multiviewProjectorMenu ;

# This is the commit message obsproject#31:

libobs-opengl: Fix viewport flip

Flip viewport in coordination with update_viewproj_matrix.

# This is the commit message obsproject#32:

UI: Add white icons for dock titles

- Add pop-out and close svg icons
- Update all dark themes qss with the new icons

# This is the commit message obsproject#33:

rtmp-services: Change Stripchat streaming service
Waik0 added a commit to Waik0/obs-studio that referenced this issue May 1, 2020
# This is the 1st commit message:

rtmp-services: add showroom setting

# This is the commit message obsproject#2:

rtmp-services: Modify showroom setting

Change recommend format and url.
Extend curl Timeout span.

# This is the commit message obsproject#3:

rtmp-services: remove unused code

# This is the commit message obsproject#4:

rtmp-services: showroom support autoconfig ui

# This is the commit message obsproject#5:

rtmp-services: clang format

# This is the commit message obsproject#6:

rtmp-services: Add WASDTV (obsproject#2697)


# This is the commit message obsproject#7:

CI: Add freetype dep on osx


# This is the commit message obsproject#8:

libobs: Fix plugin folder search path case on macOS

# This is the commit message obsproject#9:

linux-v4l2: Fix build with Clang 10.0

add_control_property() was previously static inline bool, but did not
return a value and failed to build on FreeBSD-CURRENT with Clang 10.0,
with:

error: non-void function 'add_control_property' should return a value

# This is the commit message obsproject#10:

CI: Add qt5-xml package for FreeBSD build task

# This is the commit message obsproject#11:

rtmp-services: Update ChathostessModels service (obsproject#2745)


# This is the commit message obsproject#12:

libobs: Don't save removed sources

# This is the commit message obsproject#13:

obs-ffmpeg: Fix media source not closing file when inactive

# This is the commit message obsproject#14:

obs-browser: Fix formatting

# This is the commit message obsproject#15:

obs-vst: Fix formatting

# This is the commit message obsproject#16:

obs-qsv11: Enable QSV texture-based encoding

Enables a pipeline for texture-based encoding with QSV. Utilizes OBS
NV12 output for encode to avoid offloading them from GPU, which will
increase performance. The option to select old QSV pipeline still
remains and will fallback if new pipeline fails.

# This is the commit message obsproject#17:

UI: Remove all scenes in ClearSceneData

# This is the commit message obsproject#18:

UI: Fix previewLabel styling

Label renders with default styling instead of using dynamic property
because it was already polished.

# This is the commit message obsproject#19:

docs/sphinx: Add Property Grouping

# This is the commit message obsproject#20:

plugins: Build ALSA plugin for FreeBSD

Signed-off-by: Hans Petter Selasky <hps@selasky.org>

# This is the commit message obsproject#21:

UI: Adjust a few margins

-Remove 9px margins around central widget. This saves 18px of vertical
space. This will be helpful when the source context menu is added,
which is 24px tall.

-Adjusts margins in transitions dock. The top of the transitions dock
wasn't lined up with the top of the controls dock, which made it look
bad.

# This is the commit message obsproject#22:

UI: Add status icons for recording and streaming

# This is the commit message obsproject#23:

CMake: Build Windows modules with file descriptors

# This is the commit message obsproject#24:

mac-capture: Use window id to identify windows on MacOS

Use a window's window id in init_window in the mac window capture plugin.

# This is the commit message obsproject#25:

mac-capture: Only find window by window id when owner name and pid match

# This is the commit message obsproject#26:

mac-capture: Use int in place of NSNumber for owner_pid

# This is the commit message obsproject#27:

mac-capture: update owner_pid in `update_window`

# This is the commit message obsproject#28:

CI: Add main Github Actions workflow for branch pushes and PRs

# This is the commit message obsproject#29:

UI: Remove unnecessary global variables

# This is the commit message obsproject#30:

Revert "UI: Remove unnecessary global variables"

This reverts commit f91d3ba.

From @pkv: the reason some of these vars were global is because Qt was not deleting them at all; as a result memory leaks have been reintroduced for: previewProjector, trayMenu, studioProgramProjector, multiviewProjectorMenu ;

# This is the commit message obsproject#31:

libobs-opengl: Fix viewport flip

Flip viewport in coordination with update_viewproj_matrix.

# This is the commit message obsproject#32:

UI: Add white icons for dock titles

- Add pop-out and close svg icons
- Update all dark themes qss with the new icons

# This is the commit message obsproject#33:

rtmp-services: Change Stripchat streaming service

# This is the commit message obsproject#34:

rtmp-services: Add VirtWish service

# This is the commit message obsproject#35:

UI: Update OSX to macOS in English translation

# This is the commit message obsproject#36:

obs-browser, obs-vst: Fix formatting

# This is the commit message obsproject#37:

CI: Fix Azure Pipelines macOS runs

# This is the commit message obsproject#38:

obs-filters: Add a user label to the LUT filter

While discussing the Flatpak RFC [1], it was spotted that the
LUT filter couldn't open the file selection dialog. It was
explained, then, that the proper formats were either composed
of "User Label (file extensions)", or "file extensions", and
the LUT filter was setting "(file extensions)" without the
actual user label.

While this works on a standard Qt file selection dialog, it
cannot be properly formatted as a set of D-Bus filters, thus
breaking the sandbox integration.

Add a simple user label to the LUT file filter.

[1] obsproject/rfcs#21 (comment)

# This is the commit message obsproject#39:

UI: Remove requirement for replay buffer hotkey

Fixes obsproject#2807

# This is the commit message obsproject#40:

obs-ffmpeg: Log why new NVENC might not be used

# This is the commit message obsproject#41:

obs-ffmpeg: Preserve error message from new NVENC

If we fallback to ffmpeg NVENC, the error from new NVENC might still be
present in the encoder structure. Given that this provides a lot more
actionable information to the user, let's use it if possible.

# This is the commit message obsproject#42:

libobs: Clear last error on encoder shutdown

This fixes an issue where an encoder may error out on a path that
doesn't use obs_encoder_set_last_error, resulting in a stale error being
used.

# This is the commit message obsproject#43:

obs-ffmpeg: Add localization for NVENC error messages

# This is the commit message obsproject#44:

obs-ffmpeg: Add error message for non-zero GPU

# This is the commit message obsproject#45:

CI: Update macOS deps to fix lua

# This is the commit message obsproject#46:

vlc-video: Enable building the plugin on FreeBSD
cpyarger added a commit to cpyarger/obs-studio that referenced this issue Jul 4, 2020
5455945 added a commit to 5455945/obs-studio that referenced this issue Feb 21, 2021
01 增加libcurl的传统submit post 方法。
02 调整dshow处理代码位置,放在主仓库
03 开启版本检测功能
04 增加face++人脸识别功能。首次登陆成功上传用户头像;以后登陆优先验证头像;刷脸失败再用户名、密码登陆。
WizardCM pushed a commit to WizardCM/obs-studio that referenced this issue Feb 13, 2022
Minor clean ups and whatnot....
kc5nra pushed a commit to amazon-contributing/upstreaming-to-obs-studio that referenced this issue Jan 13, 2024
…-settings-polish

Implement additional profile behaviors (profile change, rename, remove)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants