Hello folks,
I was wondering how good a Mac version of FFASTRANS will be. Especially with the powerful Apple silicon, this would be an amazing tool for a Mac. Apple Silicon performance is way better than Intel's chips these days.
Mac version of FFASTRANS
Re: Mac version of FFASTRANS
Heyho,
Currently FFAStrans is bound to windows and there is no way around that, the reason is that its written in Autoit Programming language. It requires a complete rewrite of all code to support Linux/Unix type OS, even if most (if not all) of the tools we utilize are cross OS compatible.
In addition, MacOS is not designed to run as a server, hardware mounted in a rack, having no connection to the internet, so it is by design not suitable to run a Server System like FFAStrans.
However, in some cases it can be smart to use some of the unique hardware features that Apple releases. Here is one example how to integrate a Mac into a FFAStrans farm: https://www.youtube.com/watch?v=vNtzGhRzWxc - note that i use the system i did set up in this youtube clip since a long time now and the only problem we have is that we have to reboot the Mac from time to time because it entered some weird power state or similar.
We used it for whisper subtitling because it requires 75% less power wile delivering only 25% less throughput than compareable NVIDIA Windows setup - but after all the experiment did not turn Apple hardware into our favourite solution. We learned from this experiment that it was not worth the efforts and it stayed at this one Apple host (which is still in production). All new Systems we build for this experminatal farm, especially for AI related stuff are the usual suspect Intel/Nvidia/Windows setups.
Currently FFAStrans is bound to windows and there is no way around that, the reason is that its written in Autoit Programming language. It requires a complete rewrite of all code to support Linux/Unix type OS, even if most (if not all) of the tools we utilize are cross OS compatible.
In addition, MacOS is not designed to run as a server, hardware mounted in a rack, having no connection to the internet, so it is by design not suitable to run a Server System like FFAStrans.
However, in some cases it can be smart to use some of the unique hardware features that Apple releases. Here is one example how to integrate a Mac into a FFAStrans farm: https://www.youtube.com/watch?v=vNtzGhRzWxc - note that i use the system i did set up in this youtube clip since a long time now and the only problem we have is that we have to reboot the Mac from time to time because it entered some weird power state or similar.
We used it for whisper subtitling because it requires 75% less power wile delivering only 25% less throughput than compareable NVIDIA Windows setup - but after all the experiment did not turn Apple hardware into our favourite solution. We learned from this experiment that it was not worth the efforts and it stayed at this one Apple host (which is still in production). All new Systems we build for this experminatal farm, especially for AI related stuff are the usual suspect Intel/Nvidia/Windows setups.
emcodem, wrapping since 2009 you got the rhyme?
Re: Mac version of FFASTRANS
To add to this, even if by some magic we were to rewrite the entire program, there would still be the problem of the frameserver, namely Avisynth. Although the core itself runs and it's cross platform after all the efforts made by the community to bring together the various forks like AVXSynth etc during the pandemic and we achieved cross platform compatibility, only a handful of functions / plugins have been ported, which means that other than an indexer and a few filters you wouldn't be able to do much. This is because Avisynth was born in the year 2000 and although it's constantly updated and developed, porting every single plugin created from the beginning of time would be a mammoth task. Bear in mind that we still haven't made all plugins planar high bit depth compatible as some of them still require 16bit stacked or 16bit interleaved while some other are still 8bit planar only. Porting those would take precedence over achieving any sort of cross platform support, so realistically it will take years before such a thing is accomplished. The situation on Linux is quite similar, albeit slightly better than on MacOS. https://forum.doom9.org/showthread.php?t=182032
Jokes aside, although M1, M2 etc are probably some of the best ARM chips out there compared to what Qualcomm, Samsung and Google produce, they're still years away from proper Intel Xeon server CPUs. This is because ARM CPUs are - by design - created to work as efficiently as possible on mobile devices while drawing the least amount of power possible. In ARM you have specialized components meant to execute particular tasks, however encoding and in particular filtering isn't something that can be offloaded to one of the various modules, so it has to be performed directly on the CPU as normal operations, which is where ARM falls short. The reason why you can encode things efficiently on MacOS is that they're using hardware encoding, so you're not really using the CPU to make the calculations. Using Avisynth + x264, x265 etc is another story, though. Although they have manually written intrinsics in assembly for ARM as well (i.e NEON), they're nothing compared to a proper server CPU with SSE, SSE2, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512 and AMX.
I wouldn't exactly put "Powerful" and "Apple" in the same sentence XD
Jokes aside, although M1, M2 etc are probably some of the best ARM chips out there compared to what Qualcomm, Samsung and Google produce, they're still years away from proper Intel Xeon server CPUs. This is because ARM CPUs are - by design - created to work as efficiently as possible on mobile devices while drawing the least amount of power possible. In ARM you have specialized components meant to execute particular tasks, however encoding and in particular filtering isn't something that can be offloaded to one of the various modules, so it has to be performed directly on the CPU as normal operations, which is where ARM falls short. The reason why you can encode things efficiently on MacOS is that they're using hardware encoding, so you're not really using the CPU to make the calculations. Using Avisynth + x264, x265 etc is another story, though. Although they have manually written intrinsics in assembly for ARM as well (i.e NEON), they're nothing compared to a proper server CPU with SSE, SSE2, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512 and AMX.
I felt bad making an Apple M5 ARM 8c compete against an Intel Xeon 698X 86c/172th with AVX512, so I've included a few more Xeons from several years ago in the benchmark and - to give it a slight chance - I even limited it to single core single thread. Still, that poor ARM CPU fell short against x86_64.
Re: Mac version of FFASTRANS
I think that FFASTrans, like any other transcoder or encoder, or any software you can think of, depends on how it optimises the application for different architectures. I can give a simple scenario which somehow proves what I said. For example, rendering, exporting, and working in Adobe Premiere or Avid MC are much faster than on an Intel-based machine or on a better x86 architecture. So if you optimise your application to run on Apple Silicon without an emulator on Apple hardware, it can be much faster than on Intel x86. As I said, it's all based on the application optimisation. Anywya this is my view and what I've seen so far.
Re: Mac version of FFASTRANS
@aollaku
ffastrans does not transcode, ffmpeg does. You can utilize ffmpeg encoding (or any other) with ffastrans on mac and any other system as described above. The only thing you cannot do is to run the orchestration on your Mac.
You might want to know that all team members work for large enterprises. Of course we use virtually all of Apples products for the things its designed to be used for and also we tried to misuse it for things its not designed for. After all it would not really be smart to put a lot of work into support for OS with specialized hard and software that we can never use in production with FFAStrans style orchestrating software because MacOS is not designed to run as Server.
You can however use it as a slave as mentioned above, i don't see a problem with that as long as you are able to keep the OS online.
ffastrans does not transcode, ffmpeg does. You can utilize ffmpeg encoding (or any other) with ffastrans on mac and any other system as described above. The only thing you cannot do is to run the orchestration on your Mac.
You might want to know that all team members work for large enterprises. Of course we use virtually all of Apples products for the things its designed to be used for and also we tried to misuse it for things its not designed for. After all it would not really be smart to put a lot of work into support for OS with specialized hard and software that we can never use in production with FFAStrans style orchestrating software because MacOS is not designed to run as Server.
You can however use it as a slave as mentioned above, i don't see a problem with that as long as you are able to keep the OS online.
emcodem, wrapping since 2009 you got the rhyme?