跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • Online Tools
  • 用户
  • 群组
折叠
品牌标识

D2Learn Forums

  1. 主页
  2. General Discussion | 综合讨论
  3. 关于sonic实现音频变速不变调的问题

关于sonic实现音频变速不变调的问题

已定时 已固定 已锁定 已移动 General Discussion | 综合讨论
问题求助c++ffmpegsdlsonic
10 帖子 2 发布者 55 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • hammerersH 离线
    hammerersH 离线
    hammerers
    编写于 最后由 编辑
    #1

    我正在使用QT+ffmpeg+sdl+sonic实现一个视频播放器,我想使用sonic提供的函数解决变速不变调的问题,但当我设置sonicSetSpeed(sonic, speed_);speed_不为1.0时,程序会莫名地崩溃(speed_==1.0的时候不会)下面是SDL音频播放的回调函数Screenshot 2025-08-15 031258.png Screenshot 2025-08-15 030947.pngScreenshot 2025-08-15 031630.png 希望有人能指出我的问题,谢谢!

    1 条回复 最后回复
    0
    • SPeakS 离线
      SPeakS 离线
      SPeak d2learn-dev
      编写于 最后由 编辑
      #2

      可以提供一个最小可复现示例项目的zip或git仓库链接, 以及崩溃时的调用栈...
      (大面积代码更建议用文本, 截图不方便)

      1 条回复 最后回复
      0
      • hammerersH 离线
        hammerersH 离线
        hammerers
        编写于 最后由 编辑
        #3

        我写了一个能够复现该问题的项目git@github.com:hammerers/sonic_ffmpeg_sdl_audio_player.git

        1 条回复 最后回复
        0
        • SPeakS 离线
          SPeakS 离线
          SPeak d2learn-dev
          编写于 最后由 编辑
          #4

          @hammerers 是只要speed不是1就会报错 小于1和大于1有区别吗, crash的时候调用栈有吗


          补充仓库地址: https://github.com/hammerers/sonic_ffmpeg_sdl_audio_player

          1 条回复 最后回复
          0
          • hammerersH 离线
            hammerersH 离线
            hammerers
            编写于 最后由 编辑
            #5

            debug的时候有三个地方会中断,甚至有时候可以播放出变速的声音只是是全损音质,debug的调用栈显示的都是SDL的dll,或者在sonic.c
            Screenshot 2025-08-15 175323.png

            1 条回复 最后回复
            0
            • hammerersH 离线
              hammerersH 离线
              hammerers
              编写于 最后由 编辑
              #6

              speed大于小于一都会有这种情况

              1 条回复 最后回复
              0
              • SPeakS 离线
                SPeakS 离线
                SPeak d2learn-dev
                编写于 最后由 编辑
                #7

                这里往stream里写数据的时候没有加filled的偏移, 导致重复把数据写到了buff的开头部分

                image.png

                1 条回复 最后回复
                0
                • hammerersH 离线
                  hammerersH 离线
                  hammerers
                  编写于 最后由 编辑
                  #8
                  此回复已被删除!
                  1 条回复 最后回复
                  0
                  • hammerersH 离线
                    hammerersH 离线
                    hammerers
                    编写于 最后由 编辑
                    #9

                    天哪,太粗心了,谢谢!尽管修复了它之后还是会崩溃

                    1 条回复 最后回复
                    0
                    • hammerersH 离线
                      hammerersH 离线
                      hammerers
                      编写于 最后由 编辑
                      #10

                      我打算尝试使用soundtouch去实现这个功能了(哭

                      1 条回复 最后回复
                      0

                      • 登录

                      • 没有帐号? 注册

                      • 登录或注册以进行搜索。
                      d2learn forums Powered by NodeBB
                      • 第一个帖子
                        最后一个帖子
                      0
                      • 版块
                      • 最新
                      • 标签
                      • 热门
                      • Online Tools
                      • 用户
                      • 群组