[FFmpeg-user] Apple M1 builds of FFmpeg and FFprobe
Martin Riedl
martin.riedl.92 at googlemail.com
Sun May 22 11:40:08 EEST 2022
Ah ok.
So it’s more related to x265 than FFmpeg directly.
I check this and track the progress in the following issue on gitlab:
https://gitlab.com/martinr92/ffmpeg/-/issues/4
For x264 it’s already active.
Thanks for the details.
> On 22. May 2022, at 02:47, Vincentius Vincentius <macytdl at gmail.com> wrote:
>
> I don’t know where it came from but, some posts on other forums say it was at patch to FFmpeg provided by Apple to the Handbrake developers:
>
> https://arstechnica.com/civis/viewtopic.php?f=19&t=1472102&start=400 <https://arstechnica.com/civis/viewtopic.php?f=19&t=1472102&start=400>
>
> But, I can’t find a direct source. I don’t understand why Apple would not provide the patch to the FFmpeg developers – maybe someone did.
>
> This post starts with some interesting detail from a Handbrake developer: “Apple contributed a x265 patch with a bunch of neon asm to improve x265 performance”.
>
> https://bitbucket.org/multicoreware/x265_git/issues/563/patch-neon-arm64-improvements <https://bitbucket.org/multicoreware/x265_git/issues/563/patch-neon-arm64-improvements>
>
> Apparently, it speeds up x264 and x265 encoding by 200% or more. But, there are forum comments that the x265 developers were ignoring it during 2020 and 2021.
>
> Wikipedia has some detail on Neon itself (I should always look there first): https://en.wikipedia.org/wiki/ARM_architecture_family#Advanced_SIMD_(Neon) <https://en.wikipedia.org/wiki/ARM_architecture_family#Advanced_SIMD_(Neon)>
>
> When I run a conversion using Handbrake on my M1 Mac, the log file contains this line:
>
> x264 [info]: using cpu capabilities: ARMv8 NEON
>
> I think Handbrake is using the “libx264” encoder.
>
> This is a link to the Pull Request in which the “ Neon patch” was added to the Homebrew script:
>
> https://github.com/homebrew-ffmpeg/homebrew-ffmpeg/pull/98/commits/041119acb9f1968513829795600d574794411295 <https://github.com/homebrew-ffmpeg/homebrew-ffmpeg/pull/98/commits/041119acb9f1968513829795600d574794411295>
>
> The “osxexperts” script for compiling FFmpeg <http://www.osxexperts.net/> has this nearly at the end:
>
> ./configure --prefix=${SOURCE} --extra-cflags="-fno-stack-check" --arch=arm64 --cc=/usr/bin/clang --enable-gpl --enable-libopenjpeg --enable-libopus --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libvpx --enable-libwebp --enable-libass --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libsnappy --enable-libaom --enable-libvidstab --enable-libzimg --enable-libsvtav1 --enable-version3 --pkg-config-flags=--static --disable-ffplay --enable-postproc --enable-nonfree --enable-neon --enable-runtime-cpudetect --disable-indev=qtkit --disable-indev=x11grab_xcb
>
> This GitHub repo incorporates Neon into that developer’s build of FFmpeg: https://github.com/Vargol/ffmpeg-apple-arm64-build <https://github.com/Vargol/ffmpeg-apple-arm64-build>
>
> I think this contains the Neon patch: https://github.com/Vargol/ffmpeg-apple-arm64-build/blob/master/build/apple_arm64_x265.patch <https://github.com/Vargol/ffmpeg-apple-arm64-build/blob/master/build/apple_arm64_x265.patch>
>
> This is all way above my head so, I hope this helps.
>
>
> Garry
> macytdl at gmail.com
>
>
>> On 21 May 2022, at 9:47 pm, Martin Riedl via ffmpeg-user <ffmpeg-user at ffmpeg.org> wrote:
>>
>> Can you provide more details?
>>
>> Where can I find more details about this patch?
>> Do you know, why this patch is not directly applied to FFmpeg source code?
>>
>>> On 21. May 2022, at 07:55, Vincentius Vincentius <macytdl at gmail.com> wrote:
>>>
>>> Yes, thank you for the builds. They are a great help.
>>>
>>> Please excuse my ignorance but, does/could this include the “Neon” patch for the ARM64 builds ? It has been added to the Homebrew builds (PR #98).
>>>
>>>
>>> Garry
>>>
>>>
>>>>> Am 20.05.2022 um 12:17 schrieb Martin Riedl via ffmpeg-user <ffmpeg-user at ffmpeg.org>:
>>>>>
>>>>> You can check out my build server:
>>>>> https://ffmpeg.martin-riedl.de <https://ffmpeg.martin-riedl.de/>
>>>>> It provides static builds for FFmpeg, FFprobe and FFplay for Intel and Apple Silicon (nightly builds and releases).
>>>>>
>>>>> One major difference to evermeet.cx <http://evermeet.cx/> is that I don’t have that much external codecs embedded (will be extended over time).
>>>>> In addition my binaries are signed and the installers also notarized (so no/less trouble with Gatekeeper :-D ).
>>>>>
>>>>> Also the source code for compilation is located here:
>>>>> https://gitlab.com/martinr92/ffmpeg <https://gitlab.com/martinr92/ffmpeg>
>>>>> Feel free to open an issue here if you miss a codec that is important for you.
>>>>>
>>>>> Regards,
>>>>> Martin
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-user
mailing list