<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Le 19-12-19 à 04 h 55, Emily Bowman a écrit :<br>
    <blockquote type="cite"
cite="mid:CAGSVXPRdgeHDhkfDkzGPyZ9_rMSHF8W+yPca-VmKpDk7RSSDhw@mail.gmail.com">
      <div dir="ltr">Unfortunately, ambisonics aren't exposed in opusenc
        yet, thus the trouble. They're an API-only feature, but it's a
        good time to discuss what such a command-line interface would
        look like, notably: how to specify multiple streams & stream
        order, select the mapping family, coupled channels, and how to
        specify the matrix (for family 3). Likewise, there's no
        multistream support at the moment, so two birds might be felled
        with one push. I have ideas, but I've never used ambisonics and
        really don't know what the use case would look like.<br>
      </div>
    </blockquote>
    <p>The simplest use case is to include all channels as uncoupled, as
      in the original uncompressed file; this is what I did 5 years ago
      for a personal project, by modifying opusenc to specify 255 as the
      mapping family for a 3-channel file (a first order horizontal-only
      stream); the opus decoder should obviously not consider an
      ambisonics stream as a "surround" stream, and not try to decode it
      as an ambisonics stream either (because ambisonics decoding is
      handled by the software using the opus decoded stream).<br>
    </p>
    <p>What can be done easily now is specify a mapping family of 2 when
      encoding with the latest ffmpeg and the opus library; ffmpeg does
      not accept a mapping family of 3. But I don't understand the
      difference between mapping family 2 and 255; what they mean to me
      is "uncoupled channels". That simplest use case also implies that
      no ambisonics decoding occurs in the opus decoder. So it could be
      that, as is, the opus encoder is ready for this simple use case
      (like 5 years ago)... <br>
    </p>
    <p>What's also important is to preserve the phases of all channels;
      does the opus encoder (and decoder) preserve phases of all 16
      channels with an uncoupled encoded stream?</p>
    <p>Marc</p>
    <blockquote type="cite"
cite="mid:CAGSVXPRdgeHDhkfDkzGPyZ9_rMSHF8W+yPca-VmKpDk7RSSDhw@mail.gmail.com"><br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Wed, Dec 18, 2019 at 10:00
          AM Marc Lavallée <<a href="mailto:marc@hacklava.net"
            moz-do-not-send="true">marc@hacklava.net</a>> wrote:<br>
        </div>
        <blockquote class="gmail_quote">
          <div>
            <p>Le 19-12-18 à 12 h 29, Marc Lavallée a écrit :<br>
            </p>
            <blockquote type="cite">
              <p>Hi Andrew,</p>
              <p>I suspect that the configure option should be
                enable-ambisonics (instead of enable_ambisonics), but
                for each of opus, libopusenc, opusfile and opus-tools
                git repos (on master branch), when I try "./configure
                --enable-ambisonics", I get this error message:</p>
              <p>configure: WARNING: unrecognized options:
                --enable-ambisonics</p>
            </blockquote>
            <p>I found that the --enable-ambisonics options is in opus
              1.1.3, but no longer in 1.3 versions; starting with
              version 1.3-rc2, support for ambisonics is enabled by
              default, but I don't know how to use it.<br>
            </p>
            <p>I recompiled everything using opus 1.1.3 with the
              --enable-ambisonics option, but opusenc don't offer an
              option for mapping families.</p>
            <p>It's all very confusing.<br>
            </p>
            <blockquote type="cite">
              <p>Thanks for your help.<br>
              </p>
              <p>Marc<br>
              </p>
              <div>Le 19-12-18 à 11 h 52, Andrew Allen a écrit :<br>
              </div>
              <blockquote type="cite">
                <div dir="ltr">
                  <div dir="ltr">Hi Marc,
                    <div><br>
                    </div>
                    <div>In order to use the ambisonics API, if you
                      haven't already, you will need to activate the
                      enable_ambisonics build flag during configuration.</div>
                    <div>Then, when encoding the file, make sure to
                      manually select mapping family 3 since opus does
                      not auto-detect ambisonic files.</div>
                    <div><br>
                    </div>
                    <div>Let me know if you have any questions!</div>
                    <div><br>
                    </div>
                    <div>Cheers,</div>
                    <div>Andrew</div>
                  </div>
                  <br>
                  <div class="gmail_quote">
                    <div dir="ltr" class="gmail_attr">On Tue, Dec 17,
                      2019 at 7:16 PM Marc Lavallée <<a
                        href="mailto:marc@hacklava.net" target="_blank"
                        moz-do-not-send="true">marc@hacklava.net</a>>
                      wrote:<br>
                    </div>
                    <blockquote class="gmail_quote">I compiled the
                      latest (git master) of opus, libopusenc, opusfile
                      and<br>
                      opus-tools:<br>
                      <br>
                      $ opusenc --version<br>
                      opusenc opus-tools 0.2-8-g4976421 (using libopus
                      1.3.1-4-gad8fe90d)<br>
                      <br>
                      I tried to encode a 3rd order Ambisonics wav file
                      with the standard<br>
                      Ambix (ACN-SN3D) format; opusinfo is reporting :<br>
                      <br>
                      Streams: 16, Coupled: 0<br>
                          Channel Mapping Family: 255 Map: [0, 1, 2, 3,
                      4, 5, 6, 7, 8, 9, 10,<br>
                      11, 12, 13, 14, 15]<br>
                      <br>
                      How to encode the file so that the Mapping Family
                      is 3, as suggested<br>
                      here ? : <a
                        href="https://people.xiph.org/~jm/opus/opus-1.3/"
                        rel="noreferrer" target="_blank"
                        moz-do-not-send="true">https://people.xiph.org/~jm/opus/opus-1.3/</a><br>
                      <br>
                      Marc<br>
                      <br>
                      <br>
                      _______________________________________________<br>
                      opus mailing list<br>
                      <a href="mailto:opus@xiph.org" target="_blank"
                        moz-do-not-send="true">opus@xiph.org</a><br>
                      <a
                        href="http://lists.xiph.org/mailman/listinfo/opus"
                        rel="noreferrer" target="_blank"
                        moz-do-not-send="true">http://lists.xiph.org/mailman/listinfo/opus</a><br>
                    </blockquote>
                  </div>
                </div>
              </blockquote>
              <br>
              <fieldset></fieldset>
              <pre>_______________________________________________
opus mailing list
<a href="mailto:opus@xiph.org" target="_blank" moz-do-not-send="true">opus@xiph.org</a>
<a href="http://lists.xiph.org/mailman/listinfo/opus" target="_blank" moz-do-not-send="true">http://lists.xiph.org/mailman/listinfo/opus</a>
</pre>
            </blockquote>
          </div>
          _______________________________________________<br>
          opus mailing list<br>
          <a href="mailto:opus@xiph.org" target="_blank"
            moz-do-not-send="true">opus@xiph.org</a><br>
          <a href="http://lists.xiph.org/mailman/listinfo/opus"
            rel="noreferrer" target="_blank" moz-do-not-send="true">http://lists.xiph.org/mailman/listinfo/opus</a><br>
        </blockquote>
      </div>
    </blockquote>
  </body>
</html>