Create a movie on linux

I have a client who wants to create movies on Linux mint. She is offering council skills for women from broken homes , bit like motivation films. They are to be around 30 mins long and then will go on her web site in MP4 format or onto YouTube.
This is an area I know nothing about.
Any suggestions on what software to use
She has. Teleprompter running for the words and will later add subtitles
Any suggestions welcome.

Shotcut is probably the most robust and capable of the open-source, Linux-based NLE (non-linear editing) packages right now. It can be used to achieve some very good results, though it’s certainly no Final Cut.

These days YouTube should get the exact same web-optimized, MP4-format 1080p or 4k video file that you’d upload directly to your own site, so that’s no real issue.

The biggest question is, how are you going to capture the video? Shotcut can edit footage imported from a camera, but it’s not a video-capture system. You’d most likely want to shoot footage with a camera that can record to internal storage, then transfer those files to the computer for a separate, subsequent editing process using Shotcut (or similar tool).


Thanks for your reply
Currently she is using her phone but when she transfers the file it’s in a strange m3u format that does not convert to MP4
I have tried to download the file and run it through a on line convert but. Got nothing

Let me mention Openshot, which may work too, I used it couple times for extreme simple edits (put some text overlay over video captured by a phone, and such).
A bit more advanced may be KDEnlive, which is almost a pro level app.
I myself did not have much success with KDEnlive, because of stability problems, but I looked at it around 2019, since then I did not touch it - it may have some better functioning core since…
As entering the real pro level, I’d mention Cinelerra, which is a flexible, mature, performant, but not very intuitive to use.
Then there’s Lightworks, which I looked very good, but I dropped, because the free version was way too limited, and of course my BIG favourite, my daily worker: Davinci Resolve. Davinci is the absolute winner, if it’s about features and possibilities, however it require quite a lot hardware. (I do my fullHD projects on an i5-8500 / 16GB RAM, nVidia GTX1060 6GB, and a heap of HDD’s to store footages and renders).
As for uploading to youtube, you can put there anything playable, you want, it will accept it, and reencode of course.
However, if you upload mp4 /m4v containing h264 encoded clips, youtubes processing is tremendously faster, if you put the moov atom at the start of the file (ffmpeg has a feature for this purpose: ffmpeg ......... -movflags faststart output.m4v )
Handbrake does the same with the “web optimization” option.

Oh, if you go with Davinci: check the tutorials from Daria Fissoun, it’s about DR 12 (on Windows :smiley: ), but the knowledge is still applicable for newer editions of Davinci even on Linux :wink:

I love the way she did those: “right, let’s get to it” :smiley:


Davinci Resolve, from Blackmagic, is very good, but unfortunately and as @kovacslt said, it’s a program that requires a lot of hardware.

I’m of the same opinion as @FeRDNYC. I use Shotcut and for teleprompter I use QPrompt.

About m3u file:
If that’s what I think it is, try opening it with a text editor. I believe it’s a playlist and not a video file, but I could be wrong.



I use ANY device to capture video, cameras, Iphones, Android, screen captures, whatever.
I use Kdenlive to edit them, add sound, extras, etc.
Hope that helps.


Handbrake can read m3u files, though so can Kdenlive. I would suggest using the AppImage version of Kdenlive, can highly recommend, as installing it normally has a lot of dependencies. It’s all there as an AppImage. I can also recommend getting The Mackie DLZ Creator mixer too. Works straight out of the box, as able to record vocal to either SD Card or USB Drive.

I have mine going through balance jack leads to my Focusrite Scarlett 2i2, then from it’s USB to computer and OBS-Studio picks it up straight away. No longer needing Windows for booting my GOXLR settings. The Mackie has all the software built into it, with a ten inch touch screen, samples, Gates, Equalizer, compression, plus it has an on and off switch, which the GOXLR hasn’t. It remembers your settings too. I’m like that cow over the moon with it. You can plugin instruments too. The list is endless. I’m going off on one here sorry. Yeah for podcasting and doing videos and editing I highly recommend the Mackie, though it isn’t cheap, or light, but it does get the job done. For video editing definitely Kdenlive and to shrink it down Handbrake.


No, you’re right, an m3u file is merely an index, typically it’ll be served up by a web page for an embedded player, which will then separately download and play the actual video pieces referenced within. But m3u files can’t, to my knowledge, contain actual video content. They’re rarely more than a few kilobytes in size; it’s just a text file.

My guess is, if you’re getting m3u files from a phone, it’s because it’s operating in some sort of ad-hoc webserver mode where the video is supposed to be streamed from it directly. There should be a way to get it to actually cough up the video itself, though we’d have to know things like what type of phone it is, what version of what OS it’s running, etc.

The actual video is also likely to be in webp format, rather than mp4. But Shotcut can take webp as input and convert to mp4 for output. Or, Handbrake can also do those conversions, as @clatterfordslim mentioned. Handbrake is excellent for format-conversion, but it has zero editing capabilities. You can do basic things like crop the video, filter it, or adjust the audio, but only to the entire file, not sections or pieces. It’s strictly file-in-one-format in, file-in-a-different-format out.

(Disclaimer: I’ve submitted code to Handbrake. And to Shotcut. And there are actually thousands of lines of my code in OpenShot, but I’m no longer involved there.)


Thanks for all the suggestions and ideas, think it’s going to take me some time to go through them all with the client as I am not really sure if she knows enough about what she wants. Does not help she lives about 100 km from me and is Dutch so communication can be a little taxing at times, plus she has a marketing company guiding her down all sorts of different roads. Suspect the project will fold and she will move to something else as she has done before.


I know the type, believe me.

Honestly, if you want to keep the project on track and give it a snowball’s chance of succeeding, I’d suggest recommending that they invest in only one thing: A halfway-decent video camera with internal storage.

Recording video on a phone is certainly good enough quality-wise at this point, but it’s still a giant pain in the ass technically, compared to the ease of recording and retrieving video on/from a device built for that sole purpose. If they’re of a relatively non-technical bent (which is how it sounds), that difference could be the divide between a project that gets completed, and one that gets abandoned for just being too much hassle.


The client got back to me this morning to say the marketing company she is using are going to produce the video. No idea on cost but suspect they will be expensive. But out of my knowledge range.
Thinks for the added info

Accessing the recorded movie is not really a problem, I think, as long as it’s there in the devices storage… Posibilities are using USB connections, upload the video to ftp, and grab it on the desktop, etc…
Just get the original, so don’t upload to youtube, and get it back from there - I hope you get the idea.

IF recording with a phone, please, please, PLEASE!!! avoid recording with a variable frame rate!
Using variable framerate is a good recype for disaster regarding audio/video sync in post production.

IF recording with a phone, pay attention to record a good audio track too.
Either use an external lav-mic attached to the phone, if it’s about someone talking, or use an external audio recording device, the main point is that have the mic as close as possible to the source of sound, while place the camera (phone?) to a comfortable distance…

For a phone, I can warmly recommend Aputure lav-mic, which sounds (to my ears) just the same as my 7 times more expensive Sony made lav-mic.
This is my comparation:

If you close your eyes, and don’t watch the picture, can you tell which is sounding?
(I can’t)
So, get a good (not necessary expensive :wink: ) lav mic for recording talking.

I have other tips, but don’t want to flood now…

1 Like

Millions of “average” mobile device users’ brains just went :exploding_head: from that statement, you realize? (“Device storage!?! My phone has storage???”)

After all, it’s not like they make it easy to get to. Most Android apps don’t store their files in any user-accessible location, they’re locked away in the application’s storage area unless exported to the “Internal storage”. And iPhones don’t let you get direct access to the device filesystem at all.

Even Android, in recent releases, is similar. Used to be, at least if you knew what you were doing you could browse the filesystem manually. Now? On an unrooted Samsung device running Android 13, in a local shell opened in ConnectBot:

1|:/ $ ls /
ls: /: Permission denied

1|:/ $ ls /sdcard
AMap        Documents      Pictures    Samsung\ Health
Alarms      Download       Podcasts    ShareMemo
Android     Movies         Recordings  Shared
Audiobooks  Music          Ringtones   SmartSwitch
DCIM        Notifications  Samsung     Voice\ Recorder

1|:/ $ ls /sdcard/Android
data  media  obb  obj

1|:/ $ ls /sdcard/Android/data
ls: /sdcard/Android/data: Permission denied

(/sdcard/Android/data/ is where most application storage lives. You can only access /sdcard/Android/media — but almost nothing stores files in there, and /sdcard/Android/obj — which, on my phone, is literally empty.)

Yet another reason to keep using my EOL (End Of Life) unrooted Samsung device (Galaxy S9+) running Android 10… There’s a whole bunch of limitations with Android 10 - yes… But sounds like 13 makes things even worse!

I can use adb-sync (over USB) to sync my Music Collection to → SD-Card…

I can use rsync to pull ← photos (I keep sshd running in TermUX).

I can also MTP via USB to browse content on my phone (annoyingly - EVERY time I connect to Linux over USB, it asks me EVERY F–KING TIME if want to “Allow” - believe me - I’ve been suffering this for 5+ years now - doesn’t happen on Windows - answer “Allow” once and it allows every time there-after - haven’t found a solution)…

I might also checkout ConnectBot - never heard of it before - looks interesting…

Yeah, it’s worked well for me since my very first Android phone (some terrible pre-Galaxy Samsung model I can’t even remember the name of anymore). I primarily use it as an SSH client, to reach my other machines; the fact that it can run a local shell is really just gravy.

hey, that is an idea I want to try

I made another post somewhere else about that…

  1. install F-Droid App Store (I think I had to do that from a downloaded APK, then twiddle some developer settings to allow app stores besides Gogole’s and Samdung’s …
  2. install TermUX from F-Droid (don’t install the version from Google App Store!)
  3. get SSHD running (hint : it doesn’t run on port 22!!!)
  4. Once sshd is running inside TermUX (simple as running “sshd” in TermUX bash shell [I actually run zsh in TermUX]) - you should also run “termux-setup-storage
  5. you can use TermUX to get the path to where your photos are
    A: I have an SD-Card - so they’re on that :
    (from an SSH session :
╭─u0_a440@localhost ~  
╰─➤  df -h |grep mnt\/media
/mnt/media_rw/8FC6-9FA1                        477G  133G  345G  28% /storage/8FC6-9FA1

B: if your photos are on internal phone memory - the path will be different… Also note - TermUX gets mostly permission denied when trying to access internal memory on the phone… I can work around this - just about EVERYTHING I’m interested in will be on my SD-Card…

╭─x@titan ~/Music/Mage  
╰─➤  bat ~/bin/today-photos.bash 
       │ File: /home/x/bin/today-photos.bash
   1   │ #!/usr/bin/env bash
   2   │ # Grab today's photos off a samdung piece of crap
   3   │ # 
   4   │ # source folder on the samdung crud :
   5   │ SRC="/storage/8FC6-9FA1/DCIM/Camera/"
   6   │ DSTRING=$(date '+%Y%m%d')
   7   │ FCKDSTRING="$SRC$DSTRING""_*.jpg"
   8   │ DSTRING="$DSTRING""_??????.jpg"
   9   │ YY=$(date '+%Y')
  10   │ echo $DSTRING
  11   │ echo $YY
  13   │ # e.g. 20230705_161756.jpg
  14   │ # counting on "homedung" having an entry in ~/.ssh/config or ~/.ssh/home (might be a symlink)
  15   │ HO=homedung
  16   │ # set -vx
  17   │ DEST=$HOME/ResilioSync/bigshit/Photos/$YY/Camera
  18   │ if [ ! -d $DEST ] ; then
  19   │     echo "$DEST doesn't exist... yet ..."
  20   │     echo "exiting..."
  21   │ fi
  22   │ echo "------------------"
  23   │ echo "$SRC"$DSTRING" to $DEST"
  24   │ echo "or even : "
  25   │ echo -e "\trsync -av $HO:\"$FSTRING\" $DEST/"
  26   │ echo "------------------"
  27   │ echo "or even (would be more betterer): "
  28   │ echo -e "\trsync -av $HO:\"$FCKDSTRING\" $DEST/"
  29   │ echo "------------------"

Note : I still haven’t got my head around the globbing of wildcards in the shell - so I just get output that shows the rsync commandline to run :

╭─x@titan ~/Music/Mage  
╰─➤  today-photos.bash          
/storage/8FC6-9FA1/DCIM/Camera/20230802_??????.jpg to /home/x/ResilioSync/bigshit/Photos/2023/Camera
or even : 
	rsync -av homedung:"/storage/8FC6-9FA1/DCIM/Camera/20230802_??????.jpg" /home/x/ResilioSync/bigshit/Photos/2023/Camera/
or even (would be more betterer): 
	rsync -av homedung:"/storage/8FC6-9FA1/DCIM/Camera/20230802_*.jpg" /home/x/ResilioSync/bigshit/Photos/2023/Camera/

And I can also modify the output when I copy and paste it to my shell so that I get yesterday’s, or day before’s…

Also - I have an entry for my phone’s IP address (it’s fixed / static DHCP from my router) so that “homedung” refers to it when it’s on my home wifi… I have another one for work called “workdung” … This “dung” refers to what I call my phone, Samdung, 'cause I kinda hate Samsung (some of their hardware is okay - but they’re pure garbage at software and should give up tomorrow).

sample entry in ~/.ssh/home (I actually use include ~/.ssh/home in ~/.ssh/config) :

Host    homedung dunghome
        Hostname        homedung.local
        User u0_a206
        Port NNNN

(homedung.local is in my /etc/hosts file - it never changes as it’s a static DHCP lease)


OK, so you use WiFi link via rhe modem.
Very simple. I missed yor previous post. Thanks

Yeah - but the “client” computer (doing the pulling) can be on ethernet - as my modem/router has same VLAN for all 2.4 Ghz, 5 Ghz and ethernet connections…

I mostly don’t have WiFi running on my main desktop… Just ethernet… Same goes for my Macs too - pretty much keep WiFi disabled and use ethernet (Synergy KVM performance still shonky on WiFi even 5 Ghz)…

Note also - as previously mentioned, this wouldn’t work for push, as TermUx (and it’s sshd) is mostly read-only viewing of storage - hence why I have to push using adb-sync and USB (note also - there is some push ability with TermUX, but only folders created with termux-setup-storage, which are “in” the TermUX application’s folders).

The developer of adb-sync (since deprecated - they recommend better-adb-sync - but the syntax is NOTHING like rsync - so I’ll keep using adb-sync) also has a thingie / watchamacallit to do adb-sync over WiFi, but didn’t have any luck getting that to work so gave up…

Mine is the same. Ethernet is a far better link

Note also - as previously mentioned, this wouldn’t work for push, as TermUx (and it’s sshd) is mostly read-only viewing of storage - hence why I have to push using adb-sync and USB