发新帖

记录一下安装obs25.0.7的过程(obs捕获视频模拟一个照相机)

houyawei / 2020-5-6 12:35
浏览: 236 / 回复: 5
查看: 236|回复: 7

记录一下安装obs25.0.7的过程(obs捕获视频模拟一个照相机)

[复制链接]
收藏
跳转到指定楼层
本帖最后由 houyawei 于 2020-5-10 22:25 编辑

本来想要用obs模拟一个虚拟摄像头,和别人视频的时候可以显示自己的电脑屏幕以及手机摄像头,不过后来发现v4l2sink安装上去没反应,不知道是不是源里的obs有点老了,就从官网编译了一个最新版。反正挺麻烦的,就记录了一下。想实现的效果如图。
1.jpg
---------------------------------------------------------------------------------------------------------------------------------------------
先把编译包放出来,我安装的时候提示有个包重写失败,我是手动把它卸载,之后安装obs,最后补全依赖sudo apt install -f就好了。https://ww.lanzous.com/icb9g3g
下面是一个小白的折腾全程
如果想试试安装最新版obs,直接下这个链接就好了。
如果想使用源里面的obs,直接sudo apt install obs-studio,都不用往下看了。
----------------------------------------------------------------------------------------------------------------------------------------------------

1.按照obs官网教程安装
链接:https://github.com/obsproject/obs-studio/wiki/Install-Instructions#debian-installation-unofficial
  1. Debian-based Build Directions
  2. Get the required packages:

  3.   sudo apt-get install \
  4.              build-essential \
  5.              checkinstall \
  6.              cmake \
  7.              git \
  8.              libmbedtls-dev \
  9.              libasound2-dev \
  10.              libavcodec-dev \
  11.              libavdevice-dev \
  12.              libavfilter-dev \
  13.              libavformat-dev \
  14.              libavutil-dev \
  15.              libcurl4-openssl-dev \
  16.              libfdk-aac-dev \
  17.              libfontconfig-dev \
  18.              libfreetype6-dev \
  19.              libgl1-mesa-dev \
  20.              libjack-jackd2-dev \
  21.              libjansson-dev \
  22.              libluajit-5.1-dev \
  23.              libpulse-dev \
  24.              libqt5x11extras5-dev \
  25.              libspeexdsp-dev \
  26.              libswresample-dev \
  27.              libswscale-dev \
  28.              libudev-dev \
  29.              libv4l-dev \
  30.              libvlc-dev \
  31.              libx11-dev \
  32.              libx264-dev \
  33.              libxcb-shm0-dev \
  34.              libxcb-xinerama0-dev \
  35.              libxcomposite-dev \
  36.              libxinerama-dev \
  37.              pkg-config \
  38.              python3-dev \
  39.              qtbase5-dev \
  40.              libqt5svg5-dev \
  41.              swig \
  42.              libxcb-randr0-dev \
  43.              libxcb-xfixes0-dev \
  44.              libx11-xcb-dev \
  45.              libxcb1-dev
  46. Building and installing OBS:

  47. If building with browser source:

  48. wget https://cdn-fastly.obsproject.com/downloads/cef_binary_3770_linux64.tar.bz2
  49. tar -xjf ./cef_binary_3770_linux64.tar.bz2
  50. git clone --recursive https://github.com/obsproject/obs-studio.git
  51. cd obs-studio
  52. mkdir build && cd build
  53. cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_BROWSER=ON -DCEF_ROOT_DIR="../../cef_binary_3770_linux64" ..
  54. make -j4
  55. sudo checkinstall --default --pkgname=obs-studio --fstrans=no --backup=no --pkgversion="$(date +%Y%m%d)-git" --deldoc=yes
  56. If building without browser source

  57. git clone --recursive https://github.com/obsproject/obs-studio.git
  58. cd obs-studio
  59. mkdir build && cd build
  60. cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr ..
  61. make -j4
  62. sudo checkinstall --default --pkgname=obs-studio --fstrans=no --backup=no --pkgversion="$(date +%Y%m%d)-git" --deldoc=yes
复制代码

2.git clone的时候设置了代理,不然速度太慢
,也试过用码云下载,刚开始挺快后面某些子组件又转到github下载,很慢。估计是要自己加一个新仓库才行。
  1. git config --global http.proxy 'socks5://127.0.0.1:1080'
  2. git config --global https.proxy 'socks5://127.0.0.1:1080'
复制代码

3.装的过程中发现源里没有checkinstall,这也要改好多东西,不然最后一步没法进行。

参考https://blog.51cto.com/shugao/1360193https://blog.51cto.com/thinkman/1135049


  1. 下载最新版本的checkinstall:
  2. wget http://asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz

  3. tar -xvzf checkinstall-1.6.2.tar.tar
  4. cd checkinstall-1.6.2
  5. 直接make 会报错

  6. installwatch.c:2942: error: conflicting types for 'readlink'  
  7. /usr/include/unistd.h:828: note: previous declaration of 'readlink' was here  
  8. installwatch.c:3080: error: conflicting types for 'scandir'  
  9. /usr/include/dirent.h:252: note: previous declaration of 'scandir' was here  
  10. installwatch.c:3692: error: conflicting types for 'scandir64'  
  11. /usr/include/dirent.h:275: note: previous declaration of 'scandir64' was here  

  12. vim installwatch/installwatch.c



  13. at line 101, change:
  14. static int (*true_scandir)( const char *,struct dirent ***,
  15.     int (*)(const struct dirent *),
  16.     int (*)(const void *,const void *));

  17. to:
  18. static int (*true_scandir)( const char *,struct dirent ***,
  19.     int (*)(const struct dirent *),
  20.     int (*)(const struct dirent **,const struct dirent **));




  21. at line 121, change:
  22. static int (*true_scandir64)( const char *,struct dirent64 ***,
  23.     int (*)(const struct dirent64 *),
  24.     int (*)(const void *,const void *));

  25. to:
  26. static int (*true_scandir64)( const char *,struct dirent64 ***,
  27.     int (*)(const struct dirent64 *),
  28.     int (*)(const struct dirent64 **,const struct dirent64 **));


  29. at line 2941, change:
  30. #if (GLIBC_MINOR <= 4)
  31. to:
  32. #if (0)
  33. at line 3080, change:
  34. int scandir( const char *dir,struct dirent ***namelist,
  35.   int (*select)(const struct dirent *),
  36.   int (*compar)(const void *,const void *) ) {

  37. to:
  38. int scandir( const char *dir,struct dirent ***namelist,
  39.   int (*select)(const struct dirent *),
  40.   int (*compar)(const struct dirent **,const struct dirent **) ) {

  41. at line 3692, change:
  42. int scandir64( const char *dir,struct dirent64 ***namelist,
  43.   int (*select)(const struct dirent64 *),
  44.   int (*compar)(const void *,const void *) ) {

  45. to:
  46. int scandir64( const char *dir,struct dirent64 ***namelist,
  47.   int (*select)(const struct dirent64 *),
  48.   int (*compar)(const struct dirent64 **,const struct dirent64 **) ) {
  49. 完成后make
  50. 直接make install 虽然不会报错但是在使用checkinstall 的时候,会报错
  51. “checkinstall error: File not found: /root/rpmbuild/BUILDROOT/”这种蛋疼的错误;
  52. vim checkinstall
  53. at line 495, change: CHECKINSTALLRC=${CHECKINSTALLRC:-${INSTALLDIR}/checkinstallrc}
  54. to:
  55. CHECKINSTALLRC=${CHECKINSTALLRC:-${INSTALLDIR}/lib/checkinstall/checkinstallrc}

  56. at line 2466, change: $RPMBUILD -bb ${RPM_TARGET_FLAG}${ARCHITECTURE} "$SPEC_PATH" &> ${TMP_DIR}/rpmbuild.log
  57. to:
  58. $RPMBUILD -bb ${RPM_TARGET_FLAG}${ARCHITECTURE} --buildroot $BROOTPATH "$SPEC_PATH" &> ${TMP_DIR}/rpmbuild.log
  59. Now, as root, run:
  60. make install

  61. 在使用makeinstall 的时候如果报“/root/rpmbuild has no SOURCES driectory”的错误,执行mkdir -p /root/rpmbuild/SOURCES命令;

复制代码

4.安装v4l2loopback-dkms_0.12.5-1

链接:https://packages.debian.org/sid/all/v4l2loopback-dkms/download

5.加载v4l2loopback模块
  1. sudo modprobe v4l2loopback
复制代码

6.安装obs-v4l2sink(类似Windows版的obs虚拟摄像头插件)

链接https://github.com/CatxFish/obs-v4l2sink/releases

7.在obs里面选择:工具—>v4l5sink->填一个能用的设备videoX,start。
现在obs里面捕获的视频就可以模仿一个虚拟摄像头了。
截图录屏_选择区域_20200506120310.png
7.接着在手机端随便下载一个支持rstp照相机,开启服务。在obs里面添加照相机的rstp地址,完成。效果如图,又打了个电话测试一下正常。
TIM截图20200506121656.png 截图录屏_tim.exe_20200506121750.png




OS: Deepin 20 Beta n/a
Kernel: x86_64 Linux 5.3.0-3-amd64
Resolution: 1920x1080
DE: Deepin Beta
WM: KWin
Icon Theme: smartisan_bloom
CPU: Intel Core i5-6300HQ @ 4x 3.2GHz
GPU: GeForce GTX 960M
RAM: 11917MiB

23

主题

143

帖子

766

积分

-r--r--r--

Rank: 3Rank: 3

积分
766
xiaobaizhang 发表于 2020-5-6 15:15:11 | 显示全部楼层
checkinstall 安装的时候不用这么麻烦,加入ubuntu的源,安装就好了

点评

deepin源里有这个,v20的没有  发表于 5 天前

23

主题

359

帖子

1682

积分

-rw-rw-r--

Rank: 5Rank: 5

积分
1682
QQ
houyawei 发表于 2020-5-6 15:18:12 | 显示全部楼层
xiaobaizhang 发表于 2020-5-6 15:15
checkinstall 安装的时候不用这么麻烦,加入ubuntu的源,安装就好了

昨天在论坛搜,啥也没搜到。15.11的时候源里面有
OS: Deepin 20 Beta n/a
Kernel: x86_64 Linux 5.3.0-3-amd64
Resolution: 1920x1080
DE: Deepin Beta
WM: KWin
Icon Theme: smartisan_bloom
CPU: Intel Core i5-6300HQ @ 4x 3.2GHz
GPU: GeForce GTX 960M
RAM: 11917MiB

6

主题

89

帖子

290

积分

-r--r-----

Rank: 2

积分
290
cnyangbaisong 发表于 2020-5-6 18:30:47 | 显示全部楼层
我直接网上找obs studio最新版的appimage来用,不用安装,非常简单易用

点评

我后来重装系统试了一下这个包可以直接安装,编译以后算是方便大家吧  发表于 2020-5-13 21:36

3

主题

59

帖子

267

积分

-r--r-----

Rank: 2

积分
267
windnbike 发表于 5 天前 | 显示全部楼层
补充一点
如果安装了conda,还会遇到uuid的问题,提示
//lib/x86_64-linux-gnu/libSM.so.6: undefined reference to `uuid_generate@UUID_1.0'
//lib/x86_64-linux-gnu/libSM.so.6: undefined reference to `uuid_unparse_lower@UUID_1.0'
解决方法是修改PATH变量
  1. echo $PATH
复制代码

/home/home/anaconda3/bin:/home/home/anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/sbin
去掉前面anaconda3的两个路径
  1. PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/sbin:/usr/local/cuda/bin
复制代码

20

主题

494

帖子

1708

积分

-rw-rw-r--

Rank: 5Rank: 5

积分
1708
neko 志愿者 发表于 5 天前 | 显示全部楼层
赞,很详细                     
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 返回版块 返回顶部