I'm fairly noob in video editing and Adobe Premiere, so I'm hoping this is happening because I don't know what I'm doing.
The problem is that the exported file is 7x bigger than the input file, when only minor editing has taken place. More details follow.
I recorded a 1.24 GB .mkv video with OBS. The total length of the video is 1:58:21. OBS settings were:
- Encoder: x264
- Bitrate: 2500 Kbps
- Base (Canvas) resolution: 1920x1080
- Output (Scaled) resolution: 1920x1080
I then converted the video to .mp4 using ffmpeg with the command
ffmpeg -i input.mkv -codec copy output.mp4. The output file size was 1.24 GB and the duration was the same. Just for reference, the input size in bytes was 1,237,489,462 and the output 1,242,697,547. So there was some minimal size change during the transformation.
I imported the .mp4 video into Premiere Pro and made some light editing. I removed the last ~20 minutes, leaving the final length at 1:38:04. I also added some changes on the last minute of the resulting vide, changing the audio track and adding a couple of clipped videos channels on top of the original. You can see the affected parts in the image below:
Exported using the following params:
- Format: H.264
- Preset: "Match Source - Medium bitrate". This was giving an expected output size of 2239 MB. The default was "Match Source - High bitrate", with expected output size of 7239. Both cases using Bitrate encoding "VBR, 1 pass". In the Medium bitrate, the target bitrate was 3Mbps, and it went up to 10Mbps in the High bitrate option.
- Export time: 2h
- Exported video duration: 1:38:04
- Exported video size: 2.82GB. Note that the size would've been ~1GB if the duration/size was proportional to the input video
I think the confusing part for me is the bitrate, as it affects the size of the output significantly. From what I'm reading, the bitrate is the amount of bits per second of video. Shouldn't this be given by the resolution and fps? I'm not sure how it's possible to set 10 times more bitrate keeping the same resolution and fps. Those extra bits seem useless to me.
The second part here is that it took 2h to complete the export, which sounds to me like too much time taking into account that I was removing a chunk of video (command line tools can do this in seconds) and modifying just about 0.6% of the remaining video (which I don't know how it can be done with command line tools). Only 1120 frames out of 176536 have changes, hence the 0.6%.
EDIT: I just noted that 1h30m were spent "encoding input", being input the name of the input video. Why is Premiere encoding the video? shouldn't it be already encoded with the same encoding as the selected output?
What if I did the following?
- Export the 1120 affected frames using Adobe Premiere (hopefully this is fast and gives a small output).
- Cut the original video using ffmpeg as described here.
- Join them using ffmpeg as described here.
I'm going to run that experiment next and update here with the results, but that would just be an alternative way of doing the same job.
My question remains, how is it that doing this job in Adobe Premiere takes 2h and the output is ~3x bigger than what I would expect? Am I doing something wrong? Is there something wrong with Adobe Premiere?