Multi-arch builds #653
Replies: 13 comments 2 replies
-
I've build successfully an image to run on a Raspberry Pi. However, when uploading the videos, multiple ffmpeg processes start for the different video qualities, which results in resource exhaustion and the upload stops. Unless the number of processes in parallel is limited, it is unfeasible to use on devices like the Raspberry Pi. |
Beta Was this translation helpful? Give feedback.
-
Running on a raspberry-pi then possible, but without the transcoding processes. See here - #285 to disable transcoding. @simao-silva please share your raspberry pi build instructions if you don't mind. |
Beta Was this translation helpful? Give feedback.
-
@swiftugandan Check my repository. The image is already built in Docker Hub if you would like to try it. |
Beta Was this translation helpful? Give feedback.
-
ffmpeg starts after the uploading has completed, so if you see ffmpeg running it should mean that at least the file got uploaded. |
Beta Was this translation helpful? Give feedback.
-
I will have to get one of these to try it myself! |
Beta Was this translation helpful? Give feedback.
-
Yes, that true. What I meant was that while waiting for the video to be ready (upload + transcoding) I often get the ffmpeg process stopped and the video only available on the original quality. While this has happen with v1.5, I am now using v1.6 and seems more stable. |
Beta Was this translation helpful? Give feedback.
-
Hi @simao-silva , can you write the steps to get MediaCMS working on the Raspberry Pi? Would you also be interested to write a post for the blog - https://medium.com/@MediaCMS.io ? |
Beta Was this translation helpful? Give feedback.
-
@mgogoulos I just replace the default Dockerfile in the repository by the one below. Still, I am improving the building process.
|
Beta Was this translation helpful? Give feedback.
-
The above solutions don't seem to work any longer. I was able to get it to work with @simao-silva their docker image but it seems to be very dated and missing in a lot of features that have since been added. Any chance arm64 support will ever be a consideration? |
Beta Was this translation helpful? Give feedback.
-
now a days even servers are switching to arm64 . cant run because server is linux/arm64 |
Beta Was this translation helpful? Give feedback.
-
I second this, cloud solutions based on ARM tend to be much cheaper and there is also the Oracle Cloud Free Tier with 4 ARM vCPUs. I would really love to host my MediaCMS there. @mgogoulos are there any architectural limitations for creating a multi arch build? I would be very much intereseted in helping with that, but just stumbled upon MediaCMS in search for an ARM compatible video hosting. |
Beta Was this translation helpful? Give feedback.
-
I have managed to modify the Dockerfile to work on ARM, by switching to building Bento4 from source. @mgogoulos would you be willing to accept a PR merging this change? |
Beta Was this translation helpful? Give feedback.
-
I’ve also been working on an arm64 version, but mine specifically targets Rockchip and uses a custom-built ffmpeg with hardware encoding. I generally don’t like Raspberry Pi’s, and I wouldn’t recommend them unless you absolutely don’t need transcoding. That said, I’ve managed to get a fully functional arm64 with Rockchip working and started working on making it more suitable for a PR. I use Orange Pi 5 Pro’s with RK3588S, which is more than capable of handling light to moderate transcoding workloads. However, I’ve been stuck trying to figure out why the videos aren’t playing even though I’ve encoded them properly. I have the preview gifs, and all the encodings are present and seem to be working (I can browse the media_files, and they all play and work). However, no matter which browser I use, I just get a black box where the video should be. Either way, I wanted to contribute to this discussion with that update and a different question/phrasing of the subject. My use case involves a different hardware encoder, which required a lot of changes to the ffmpeg command generation and encoding profiles. I managed to get it working, but the encoding_profiles.json, helpers.py, and tasks.py files needed significant modifications, resulting in some spaghetti code. After some thought, I don’t think it’s a good idea to include my hardware encoder in the current state of the project. Many parts of the encoding profiles might be better suited by abstracting them, allowing the commands and other specifics to be grouped by the encoder. That said, I have a question: Are there any specific recommendations for creating new encoding profiles? |
Beta Was this translation helpful? Give feedback.
-
Could it be possible to have a build for
arm64
? I want to run this on my Raspberry Pi, but this is currently not possible as the container is only available forx86_64
and whenever I run the container it saysexec format error
. Thanks ahead of time!Beta Was this translation helpful? Give feedback.
All reactions