this post was submitted on 06 Jan 2024
78 points (97.6% liked)
Linux
48212 readers
2110 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Completely tangential tip, but in the very-limited video editing I've done recently: I've used Davinci Resolve, rendered as
.mov
, and then used ffmpeg to render to my actual desired format. e.g. h264 w/ aac audio so I can upload to Youtube:ffmpeg -i input.mov -c:v libopenh264 -profile:v high -c:a aac -pix_fmt yuv420p output.mp4
I do think that finding the right flags to pass to ffmpeg is a cursed art. Do I need to specify the video profile and the pix_fmt? I don't know; I thought I did when I adventured to collect these flags. Though maybe it's just a reflection of the video-codec horrors lurking within all video rendering pipelines.
edit: there may also be nvidia-accelerated encoders, like h264_nvenc, see
ffmpeg -codecs 2>/dev/null | grep -i 'h\.264'
. I'm not sure if theprofile:v
andpix_fmt
options apply to other encoders or just libopenh264.haha, yeah figuring out those ffmpeg flags is an absolute nightmare. My problem there isn't so much the output format from Resolve, but source format I'm using. My camera only has the option to record in H.264/H.265 (consumer grade, what can you expect?) which Resolve can't properly import on Linux. I could take the time to transcode them with ffmpeg before editing, but I'm usually working with ~2 hours worth of video per project and I don't really want to wait all day for a transcode job to finish before I can even begin editing. On top of that my camera (rather neatly) generates its own proxy files while recording, and I've found leveraging these is necessary for getting good timeline performance on my aging rig. Now I could let Resolve generate its own proxy clips like I have in the past, but that's more time waiting around before editing. I was SUPER stoked to see Kdenlive can natively utilize the proxy clips my camera generates.
Oh wow, I didn't know (free) Davinci didn't support using H.264 as source media, that feels rather limited.
using openh264... well that's a choice. I would recommend to everyone that they use x264 whenever possible, and make sure to specify output crf and likely preset when you fo
thanks, I'll try out the libx264 encoder next time
A couple other things, you generally want to do pixel format conversion before the codec, is specified. You should be able to get satisfactory results with
ffmpeg -i input.mpv -pix_fmt yuv420p -c:v libx264 -preset medium -crf 24 -c:a aac output.mp4
Play with preset a bit since that is where your Quality/Compression : Speed ratio comes in, CRF is the quality it handles. So you set CRF for a ballpark quality you want, then change the preset, slower = higher compression, faster = lower compression.you can find more info here https://trac.ffmpeg.org/wiki/Encode/H.264#a2.Chooseapresetandtune but generally you don't need to muck about with profiles or tunes or anything else
You're probably aware already, but others reading this might be interested that you can access the same format conversion with Handbrake and WinFF if you prefer GUI tools. Remember your settings once and save them as a preset.