Openshot-qt: Huge files generated by openshot

Created on 26 Sep 2018  Â·  2Comments  Â·  Source: OpenShot/openshot-qt

I have a small (7 megabyte) video with:

resolution 1360x768
fram rate: 12
codec H264-MPEG-4-AVC
(a screen cast)

I add an mp3 sound track (70 megabytes) and then export in MP$/Youtube format
I get almost one Gigabyte file

How can I specify a format which keeps the original dimension of the two files?

thanks

question

Most helpful comment

Hey @fabioschoen — your video's going to get reencoded no matter what, I'm afraid — OpenShot doesn't currently have "copy"-type features for remuxing videos _without_ reencoding, the way tools like Avidemux can. (If all you're looking to do is mix your existing video with a different audio track, Avidemux is actually an excellent tool for that — just set the video codec to "Copy", import the MP3 as your audio track, set the audio encoding parameters to match your output container, and before you can say1 "transcode the download" you'll have a new file combining the audio track with your completely-untouched original video.

If you _do_ need to work in OpenShot, say because the alignment of the audio and video is crucial, or because you need to make edits to one/both of the source files before they're encoded together, then like I said your video's going to get re-encoded. And it'll probably be encoded less efficiently than before, because encoding a screencast is very different from encoding full-motion live video, and OpenShot is tuned for the latter.

In fact, one of the immediate difficulties that comes to mind is the frame rate of your source video. Because all of OpenShot's presets are based on the standard video formats supported in film, in television, and on the web, none of the built-in profiles have a frame rate lower than 24fps (well, technically, the 23.98fps common in North American TV & film recording).2

So, you have two choices, as I see it:

  1. You could write your own custom video profile definition, to match your source video. OpenShot's profile list is fully extensible, in addition to the built-in set it'll load whatever profile definitions are in $HOME/.openshot_qt/profiles/ (or %USERPROFILE%\.openshot_qt\profiles\ on Windows). So you could take one of the existing profile files, say OpenShot's default hdv_720_24p profile, and use that as a template to create one for your input. Then you'd place that in the profiles/ directory of your OpenShot configuration dir, restart OpenShot, and use the "Choose Profile" selector to set your new addition as your project profile.

  2. You could say "to heck with it", use a 24fps profile, and just accept that your video's going to grow because the frame rate is doubled (if nothing else).

Honestly, unless there's a _really_ strong reason not to, I would recommend the second option. Even if you go that route, there are things you can do to keep the export file size in check.

My suggestions:

  • You MUST export at the same frame rate as your project profile. (That's currently an OpenShot limitiation.) Don't think you can set up the project at 24fps and then just set it up to export at 12fps. That will almost certainly just give you a useless video. 24fps project, 24fps export. Hard rule.
  • You DON'T have to use the site-based presets in the Export settings, and if you're trying to keep file size down you DEFINITELY shouldn't be using those. They force the output parameters into formats that are recommended by the hosting sites for crystal-clear full-motion video. Export won't care that the fiel it's encoding is a 12fps screencast, it'll still use parameters that are _beyond_ excessive for what you're doing. Use these options:

    • Profile: "All Formats"

    • Target: "MP4 (h.264)"

    • Video Profile: whatever you set your project profile to

    • Quality: Ah, here's the tricky one. Read on...

  • You SHOULDN'T set the Quality to High when exporting, in fact even Medium is probably excessive. That setting controls the _bitrate_ of the encoding, and for most of the preset library a video encoding quality of High = 15 Megabits per second. Even Medium is 5 Mbps, which is still multiple times in excess of what you'd need for a screencast. Low is 384 Kbps (0.4 Mbps), which honestly might be just fine for reencoding a screencast video. I'd start with that.
  • If your first encode attempt with Low quality comes out looking too blocky or degraded, instead of bumping the quality up to Medium (over ten times the bitrate of Low), switch to the Advanced tab of the Export window, open the "Video Settings" panel, and set the "Bit Rate / Quality" option to something that seems more reasonable. OpenShot will use whatever you set there (as long as it's a valid setting). So if Low quality's 384 kb/s was too rough, try changing it to 700 kb/s or 800 kb/s. If that's not good enough and you can afford a bigger file, try 1 Mb/s, then 2 Mb/s, before you move all the way up to Medium (5 Mb/s).

With some experimentation, you should be able to get a _reasonably_ sized export video using OpenShot. It will never, under any circumstances, be even close to as small as your original screencast video, though. Sorry, that's just not one of OpenShot's features, though as I said there are other very good tools (like Avidemux) that specialize in _that_ sort of video transfer/conversion.

Notes

1 – (Note: Please don't say that. Nobody should ever say that.)
2 – (Turns out that's not true, there are a few with a lower frame rate, like _QVGA 15 fps_. How do you feel about 320x240 pixel resolution? ...Yeah, I wouldn't either. Besides, honestly, reencoding from 12fps to 15fps would look _awful_, the video would be jerky as hell.)

All 2 comments

Hey @fabioschoen — your video's going to get reencoded no matter what, I'm afraid — OpenShot doesn't currently have "copy"-type features for remuxing videos _without_ reencoding, the way tools like Avidemux can. (If all you're looking to do is mix your existing video with a different audio track, Avidemux is actually an excellent tool for that — just set the video codec to "Copy", import the MP3 as your audio track, set the audio encoding parameters to match your output container, and before you can say1 "transcode the download" you'll have a new file combining the audio track with your completely-untouched original video.

If you _do_ need to work in OpenShot, say because the alignment of the audio and video is crucial, or because you need to make edits to one/both of the source files before they're encoded together, then like I said your video's going to get re-encoded. And it'll probably be encoded less efficiently than before, because encoding a screencast is very different from encoding full-motion live video, and OpenShot is tuned for the latter.

In fact, one of the immediate difficulties that comes to mind is the frame rate of your source video. Because all of OpenShot's presets are based on the standard video formats supported in film, in television, and on the web, none of the built-in profiles have a frame rate lower than 24fps (well, technically, the 23.98fps common in North American TV & film recording).2

So, you have two choices, as I see it:

  1. You could write your own custom video profile definition, to match your source video. OpenShot's profile list is fully extensible, in addition to the built-in set it'll load whatever profile definitions are in $HOME/.openshot_qt/profiles/ (or %USERPROFILE%\.openshot_qt\profiles\ on Windows). So you could take one of the existing profile files, say OpenShot's default hdv_720_24p profile, and use that as a template to create one for your input. Then you'd place that in the profiles/ directory of your OpenShot configuration dir, restart OpenShot, and use the "Choose Profile" selector to set your new addition as your project profile.

  2. You could say "to heck with it", use a 24fps profile, and just accept that your video's going to grow because the frame rate is doubled (if nothing else).

Honestly, unless there's a _really_ strong reason not to, I would recommend the second option. Even if you go that route, there are things you can do to keep the export file size in check.

My suggestions:

  • You MUST export at the same frame rate as your project profile. (That's currently an OpenShot limitiation.) Don't think you can set up the project at 24fps and then just set it up to export at 12fps. That will almost certainly just give you a useless video. 24fps project, 24fps export. Hard rule.
  • You DON'T have to use the site-based presets in the Export settings, and if you're trying to keep file size down you DEFINITELY shouldn't be using those. They force the output parameters into formats that are recommended by the hosting sites for crystal-clear full-motion video. Export won't care that the fiel it's encoding is a 12fps screencast, it'll still use parameters that are _beyond_ excessive for what you're doing. Use these options:

    • Profile: "All Formats"

    • Target: "MP4 (h.264)"

    • Video Profile: whatever you set your project profile to

    • Quality: Ah, here's the tricky one. Read on...

  • You SHOULDN'T set the Quality to High when exporting, in fact even Medium is probably excessive. That setting controls the _bitrate_ of the encoding, and for most of the preset library a video encoding quality of High = 15 Megabits per second. Even Medium is 5 Mbps, which is still multiple times in excess of what you'd need for a screencast. Low is 384 Kbps (0.4 Mbps), which honestly might be just fine for reencoding a screencast video. I'd start with that.
  • If your first encode attempt with Low quality comes out looking too blocky or degraded, instead of bumping the quality up to Medium (over ten times the bitrate of Low), switch to the Advanced tab of the Export window, open the "Video Settings" panel, and set the "Bit Rate / Quality" option to something that seems more reasonable. OpenShot will use whatever you set there (as long as it's a valid setting). So if Low quality's 384 kb/s was too rough, try changing it to 700 kb/s or 800 kb/s. If that's not good enough and you can afford a bigger file, try 1 Mb/s, then 2 Mb/s, before you move all the way up to Medium (5 Mb/s).

With some experimentation, you should be able to get a _reasonably_ sized export video using OpenShot. It will never, under any circumstances, be even close to as small as your original screencast video, though. Sorry, that's just not one of OpenShot's features, though as I said there are other very good tools (like Avidemux) that specialize in _that_ sort of video transfer/conversion.

Notes

1 – (Note: Please don't say that. Nobody should ever say that.)
2 – (Turns out that's not true, there are a few with a lower frame rate, like _QVGA 15 fps_. How do you feel about 320x240 pixel resolution? ...Yeah, I wouldn't either. Besides, honestly, reencoding from 12fps to 15fps would look _awful_, the video would be jerky as hell.)

I've met a case like @ fabioschoen . I import a MP3 file about 4MB and a photo about 1MB. When I export MP4, it create a file 7GB in more than 1 hour. So, I think OpenShot is not a suitable tool for this job.

Thank you so much, Mr @ferdnyc! Your explaination is very clearly.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

GrandpaBill3006 picture GrandpaBill3006  Â·  3Comments

malinga91 picture malinga91  Â·  3Comments

audioclown picture audioclown  Â·  3Comments

Geoff0627 picture Geoff0627  Â·  3Comments

Emma3993 picture Emma3993  Â·  3Comments