OBS Studio是个好东西,性能好、功能全、还开源。

我因懂得都懂的原因需要调节麦克风的延迟好使音画同步,当然软件有这个功能,但是我要填的值不在区间内。

好在软件开源,在测试过取值区间的范围之后,我直接在Github搜索值,成功找到了限制代码,我只需要修改这一行代码再编译就好了,我编译这种大型的项目从来没成功过,但是换电脑了啊,最新的操作系统,我相信不会出什么意外。

编译

啥也不改,照着官方说明,装上QT,下载好依赖,build,失败。

回头看看,漏了一步,需要执行一个ps脚本下载依赖。

执行脚本,失败,多半网络问题。

不要在这里折腾了,试试简单粗暴逆向吧。

逆向

逆向,说的高大上,实际上我啥也不会,只能拿个十六进制编辑器搜索整数值。

一个一个试,十六进制正着倒着都试了一遍,要不改了没用,要不改了打不开软件。

啥也不会,注定失败。

Github Actions

结果还得自己构建。但是我可以用上Github的虚拟机。

看了一下OBS Studio项目,里面是有构建的动作的,似乎当推文件的时候就会自动构造。

改了一下代码,等了很久很久,构建完了,成功了,但是啥也没得到。虚拟机上的文件我看不到。

经过好几次莽撞失败删库再fork,动了动脑子,好好看了看前人的经验。

“原来发布Releases是需要Token的!”

在账户上创建密钥,然后赋值给环境变量···

紧接着又是失败,上传项目时失败了,调用的 JasonEtco/upload-to-release@master,报错说容器操作在windows上不能用。

找来找去,最终在build任务里添加以下代码结束战斗。

      - name: Create Release
        id: create_release
        uses: actions/create-release@v1
        env:
         GITHUB_TOKEN: ${{ secrets.TOKEN }}
        with:
         tag_name: "r-test"
         release_name: Release Test
         draft: false
         prerelease: false
      - name: Upload Release Asset
        id: upload-release-asset
        uses: actions/upload-release-asset@v1
        env:
         GITHUB_TOKEN: ${{ secrets.TOKEN }}
        with:
         upload_url: ${{ steps.create_release.outputs.upload_url }}
         asset_path: ${{ env.FILE_NAME }}
         asset_name: win.zip
         asset_content_type: application/zip

我发现,同样一份代码,macOS上和Linux比WIndow编译快。

但战斗还未结束

同步偏移这个属性,用于控制音画同步,往正调,能调20秒,声音慢20秒,往倒着调,只能调0.95秒,正着调实现盲猜音频缓冲区加长,至于倒着调,我的想法是让视频和其他音轨缓冲区加长,但可能不是这样实现的,因为我调成较大的负数之后声音就没有了。

嗯,没错,解决往里填数的问题还没完。

去主仓库的问题里看了下,视频和音频的同步似乎相当复杂,这不是我能解决的问题。

没成功,但···至少我现在对Actions略知一二了。

音频同步,再想其他办法吧···

我能想到的,最大的成功就是无愧于自己的心。