• moto's avatar
    [BC-breaking] Update pre-built ffmpeg4 to 4.4.4 (#3561) · bf07ea6b
    moto authored
    Summary:
    In https://github.com/pytorch/audio/pull/3460, we switched the build process for FFmpeg extension.
    Since it is complicated to install FFmpeg in some environments, at build time, pre-built binaries and its headers
    are downloaded and used as a scaffolding for torchaudio build.
    
    Now even though we did not change any code or FFmpeg version, it turned out that this causes segmentation
    fault on Ubuntu when using system Python and FFmpeg 4.4 installed via aptitude.
    While investigating the issue, I swapped the said pre-built FFmpeg scaffolding with FFmpeg 4.4 from aptitude,
    and the segmentation fault did not happen. This indicates that it is binary compatibility issue.
    
    Before https://github.com/pytorch/audio/issues/3460, each binary build job was building FFmpeg 4.1.8 using the same compiler used to build torchaudio,
    but after https://github.com/pytorch/audio/issues/3460 the environments to build FFmpeg 4.1.8 and torchaudio are different. My hypothesis is that
    this difference is causing some ABI incompatibility when linking against FFmpeg 4.4. (Also, I don't remember well,
    but I read somewhere that 4.4 has a different ABI)
    
    Through experiments, it turned out upgrading the pre-built FFmpeg scaffolding to 4.4 resolves this.
    So this commit upgrade the pre-built FFmpeg 4 to 4.4.
    The potential (yet unconfirmed) downside is that torchaudio will no longer work with 4.1, 4.2, and 4.3.
    Since FFmpeg 4.4 is what Ubuntu 20.04 and 22.04 support by default, and Google Colab is also on 20.04,
    I think it is more important to support 4.4.
    
    Therefore we drop the support for 4.1-4.3 from normal build (and official distributions). Those who wish to
    use 4.1-4.3 can build torchaudio from source by linking to specific FFmpeg.
    
    Pull Request resolved: https://github.com/pytorch/audio/pull/3561
    
    Reviewed By: hwangjeff
    
    Differential Revision: D48340201
    
    Pulled By: mthrok
    
    fbshipit-source-id: 7ece82910f290c7cf83f58311c4cf6a384e8795e
    bf07ea6b
streamwriter_advanced.py 9.46 KB