Comparing Final Cut Pro and FFmpeg audio for YouTube uploads

Is it me or does FFMPEG sound better than Final Cut Pro?


For FFMPEG I used command export: ffmpeg -loop 1 -framerate 2 -i input.png -i audio.m4a -c:v libx264 -preset medium -tune stillimage -crf 18 -c:a copy -shortest -pix_fmt yuv420p output.mkv


FFMPEG Video: https://youtube.com/shorts/-58vSLLka_E?si=hJdwz_btuooG5PAH<br style=”font-family: inherit; font-size: inherit;”>


Final Cut Pro export: Prores 422 48khz 60fps


Final Cut Pro Video: https://youtube.com/shorts/zlJ90k5g-oI?si=4d9fk19MaRMocJh4


The Thing is I want to stick with one that is faster to upload on YouTube With Excellent sound quality. What do you guys think Final Cut Pro compared to FFMPEG? Which sounds better?

MacBook Air (2018 – 2020)

Posted on Jul 17, 2026 5:25 PM

Reply
Question marked as Top-ranking reply

Posted on Jul 17, 2026 11:21 PM

eddievalentin007 wrote:
-i audio.m4a [...] -c:a copy
Final Cut Pro export: Prores 422 48khz 60fps

You don't say which audio codec is copied from the .m4a. FCP's ProRes is PCM audio.


But anyway, YouTube re-encodes uploaded movies at its own will which is a moving target. So Average Joe does not have much control how it does it, AFAIK bigger $$ players have more control over that. YouTube might not re-encode PCM with best quality to another audio codec.


You can use Terminal app yt-dlp to check which video and audio codecs YouTube offers to view that movie. For that FCP version it is currently:


yt-dlp -F 'https://www.youtube.com/shorts/zlJ90k5g-oI' 
[youtube] Extracting URL: https://www.youtube.com/shorts/zlJ90k5g-oI
[youtube] zlJ90k5g-oI: Downloading webpage
[youtube] zlJ90k5g-oI: Downloading android vr player API JSON
[youtube] zlJ90k5g-oI: Downloading player 882a803a-main
[youtube] [jsc:deno] Solving JS challenges using deno
[youtube] zlJ90k5g-oI: Downloading m3u8 information
[info] Available formats for zlJ90k5g-oI:
ID  EXT   RESOLUTION FPS CH │   FILESIZE  TBR PROTO │ VCODEC         VBR ACODEC      ABR ASR MORE INFO
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3 mhtml 48x27        2    │                 mhtml │ images                                 storyboard
sb2 mhtml 45x45        1    │                 mhtml │ images                                 storyboard
sb1 mhtml 90x90        1    │                 mhtml │ images                                 storyboard
sb0 mhtml 180x180      1    │                 mhtml │ images                                 storyboard
139 m4a   audio only      2 │  363.92KiB  49k https │ audio only         mp4a.40.5   49k 22k [es] low, m4a_dash
249 webm  audio only      2 │  437.43KiB  59k https │ audio only         opus        59k 48k [es] low, webm_dash
140 m4a   audio only      2 │  962.39KiB 130k https │ audio only         mp4a.40.2  130k 44k [es] medium, m4a_dash
251 webm  audio only      2 │    1.07MiB 148k https │ audio only         opus       148k 48k [es] medium, webm_dash
91  mp4   144x144     30    │ ~536.36KiB  72k m3u8  │ avc1.4D400B        mp4a.40.5           [es]
160 mp4   144x144     30    │  128.15KiB  17k https │ avc1.4d400b    17k video only          144p, mp4_dash
92  mp4   240x240     30    │ ~656.41KiB  88k m3u8  │ avc1.4D400D        mp4a.40.5           [es]
133 mp4   240x240     30    │  241.36KiB  33k https │ avc1.4d400d    33k video only          240p, mp4_dash
242 webm  240x240     30    │  175.06KiB  24k https │ vp9            24k video only          240p, webm_dash
395 mp4   240x240     30    │  161.88KiB  22k https │ av01.0.00M.08  22k video only          240p, mp4_dash
93  mp4   360x360     30    │ ~  1.43MiB 197k m3u8  │ avc1.4D4015        mp4a.40.2           [es]
134 mp4   360x360     30    │  412.95KiB  56k https │ avc1.4d4015    56k video only          360p, mp4_dash
18  mp4   360x360     30  2 │  768.42KiB 103k https │ avc1.42001E        mp4a.40.2       22k [es] 360p
243 webm  360x360     30    │  308.11KiB  42k https │ vp9            42k video only          360p, webm_dash
396 mp4   360x360     30    │  248.27KiB  33k https │ av01.0.00M.08  33k video only          360p, mp4_dash
94  mp4   480x480     30    │ ~  1.74MiB 240k m3u8  │ avc1.4D401E        mp4a.40.2           [es]
135 mp4   480x480     30    │  712.84KiB  96k https │ avc1.4d401e    96k video only          480p, mp4_dash
779 webm  608x608     30    │  811.00KiB 109k https │ vp9           109k video only          480p, webm_dash
780 webm  608x608     30    │    1.05MiB 145k https │ vp9           145k video only          480p, webm_dash
787 mp4   608x608     30    │  598.00KiB  81k https │ av01.0.04M.08  81k video only          480p, mp4_dash
788 mp4   608x608     30    │  795.59KiB 107k https │ av01.0.04M.08 107k video only          480p, mp4_dash
300 mp4   720x720     60    │ ~  2.38MiB 327k m3u8  │ avc1.640020        mp4a.40.2           [es]
298 mp4   720x720     60    │    1.30MiB 179k https │ avc1.640020   179k video only          720p60, mp4_dash
302 webm  720x720     60    │    1.39MiB 192k https │ vp9           192k video only          720p60, webm_dash
398 mp4   720x720     60    │  930.56KiB 125k https │ av01.0.05M.08 125k video only          720p60, mp4_dash
301 mp4   1080x1080   60    │ ~  3.28MiB 452k m3u8  │ avc1.64002A        mp4a.40.2           [es]
299 mp4   1080x1080   60    │    2.15MiB 297k https │ avc1.64002a   297k video only          1080p60, mp4_dash
303 webm  1080x1080   60    │    2.18MiB 301k https │ vp9           301k video only          1080p60, webm_dash
399 mp4   1080x1080   60    │    1.51MiB 208k https │ av01.0.09M.08 208k video only          1080p60, mp4_dash



12 replies
Question marked as Top-ranking reply

Jul 17, 2026 11:21 PM in response to eddievalentin007

eddievalentin007 wrote:
-i audio.m4a [...] -c:a copy
Final Cut Pro export: Prores 422 48khz 60fps

You don't say which audio codec is copied from the .m4a. FCP's ProRes is PCM audio.


But anyway, YouTube re-encodes uploaded movies at its own will which is a moving target. So Average Joe does not have much control how it does it, AFAIK bigger $$ players have more control over that. YouTube might not re-encode PCM with best quality to another audio codec.


You can use Terminal app yt-dlp to check which video and audio codecs YouTube offers to view that movie. For that FCP version it is currently:


yt-dlp -F 'https://www.youtube.com/shorts/zlJ90k5g-oI' 
[youtube] Extracting URL: https://www.youtube.com/shorts/zlJ90k5g-oI
[youtube] zlJ90k5g-oI: Downloading webpage
[youtube] zlJ90k5g-oI: Downloading android vr player API JSON
[youtube] zlJ90k5g-oI: Downloading player 882a803a-main
[youtube] [jsc:deno] Solving JS challenges using deno
[youtube] zlJ90k5g-oI: Downloading m3u8 information
[info] Available formats for zlJ90k5g-oI:
ID  EXT   RESOLUTION FPS CH │   FILESIZE  TBR PROTO │ VCODEC         VBR ACODEC      ABR ASR MORE INFO
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3 mhtml 48x27        2    │                 mhtml │ images                                 storyboard
sb2 mhtml 45x45        1    │                 mhtml │ images                                 storyboard
sb1 mhtml 90x90        1    │                 mhtml │ images                                 storyboard
sb0 mhtml 180x180      1    │                 mhtml │ images                                 storyboard
139 m4a   audio only      2 │  363.92KiB  49k https │ audio only         mp4a.40.5   49k 22k [es] low, m4a_dash
249 webm  audio only      2 │  437.43KiB  59k https │ audio only         opus        59k 48k [es] low, webm_dash
140 m4a   audio only      2 │  962.39KiB 130k https │ audio only         mp4a.40.2  130k 44k [es] medium, m4a_dash
251 webm  audio only      2 │    1.07MiB 148k https │ audio only         opus       148k 48k [es] medium, webm_dash
91  mp4   144x144     30    │ ~536.36KiB  72k m3u8  │ avc1.4D400B        mp4a.40.5           [es]
160 mp4   144x144     30    │  128.15KiB  17k https │ avc1.4d400b    17k video only          144p, mp4_dash
92  mp4   240x240     30    │ ~656.41KiB  88k m3u8  │ avc1.4D400D        mp4a.40.5           [es]
133 mp4   240x240     30    │  241.36KiB  33k https │ avc1.4d400d    33k video only          240p, mp4_dash
242 webm  240x240     30    │  175.06KiB  24k https │ vp9            24k video only          240p, webm_dash
395 mp4   240x240     30    │  161.88KiB  22k https │ av01.0.00M.08  22k video only          240p, mp4_dash
93  mp4   360x360     30    │ ~  1.43MiB 197k m3u8  │ avc1.4D4015        mp4a.40.2           [es]
134 mp4   360x360     30    │  412.95KiB  56k https │ avc1.4d4015    56k video only          360p, mp4_dash
18  mp4   360x360     30  2 │  768.42KiB 103k https │ avc1.42001E        mp4a.40.2       22k [es] 360p
243 webm  360x360     30    │  308.11KiB  42k https │ vp9            42k video only          360p, webm_dash
396 mp4   360x360     30    │  248.27KiB  33k https │ av01.0.00M.08  33k video only          360p, mp4_dash
94  mp4   480x480     30    │ ~  1.74MiB 240k m3u8  │ avc1.4D401E        mp4a.40.2           [es]
135 mp4   480x480     30    │  712.84KiB  96k https │ avc1.4d401e    96k video only          480p, mp4_dash
779 webm  608x608     30    │  811.00KiB 109k https │ vp9           109k video only          480p, webm_dash
780 webm  608x608     30    │    1.05MiB 145k https │ vp9           145k video only          480p, webm_dash
787 mp4   608x608     30    │  598.00KiB  81k https │ av01.0.04M.08  81k video only          480p, mp4_dash
788 mp4   608x608     30    │  795.59KiB 107k https │ av01.0.04M.08 107k video only          480p, mp4_dash
300 mp4   720x720     60    │ ~  2.38MiB 327k m3u8  │ avc1.640020        mp4a.40.2           [es]
298 mp4   720x720     60    │    1.30MiB 179k https │ avc1.640020   179k video only          720p60, mp4_dash
302 webm  720x720     60    │    1.39MiB 192k https │ vp9           192k video only          720p60, webm_dash
398 mp4   720x720     60    │  930.56KiB 125k https │ av01.0.05M.08 125k video only          720p60, mp4_dash
301 mp4   1080x1080   60    │ ~  3.28MiB 452k m3u8  │ avc1.64002A        mp4a.40.2           [es]
299 mp4   1080x1080   60    │    2.15MiB 297k https │ avc1.64002a   297k video only          1080p60, mp4_dash
303 webm  1080x1080   60    │    2.18MiB 301k https │ vp9           301k video only          1080p60, webm_dash
399 mp4   1080x1080   60    │    1.51MiB 208k https │ av01.0.09M.08 208k video only          1080p60, mp4_dash



Jul 20, 2026 1:39 PM in response to eddievalentin007

eddievalentin007 wrote:
the ffmpeg video link is encoded with libx264 i was wondering if it sounds better than the final cut pro prores 422 video i exported on youtube?

It would not make any difference. Everything uploaded to YouTube goes through their own, proprietary compression algorithm. You could upload ProRes 4444 or uncompressed video and audio, and it would end up looking and sounding the same as if you uploaded a medium quality H.264 file.

Jul 26, 2026 4:00 PM in response to Old_Video_Guy

Youtube always recompresses what you upload. ALWAYS. Back 15 years ago or so there was a way to trick it to bypass this, but that didn't last long. All that said some formats will recompress better than others. It all depends how Youtube interprets the original file. Wanna get the best result? Upload in 4K. HEVC is a good choice for video, ProRes won't net you better results unless you're really skimping with your HEVC bit rates. For audio? Upload lossless or a lossless format, like Apple Lossless. Give it more to work with. Don't limit yourself to Youtube's suggested bitrates. I had a friend who uploaded 1080p videos at 8mbps because that's what Youtube recommended. His videos looked crappy. Mine would look much better uploaded at about 25mbps for 1080p back then. Youtube's bit rate recommendations basically accounts for people's slow upload speeds, trying to not make things too annoying for them to publish videos.

Jul 20, 2026 8:24 PM in response to Old_Video_Guy

@Old_Video_Guy:


I have to disagree with you. If you conform to their (Google/YouTube) upload guidelines, videos uploaded are ready to play right away (within just a few minutes.) Anything YouTube has to re-encode will take as long (or longer) than FCP would take to encode your video. In other words, it's easy to tell if you had a successful, unaltered upload.


The upload guidelines haven't changed in many years, but my experience suggests that the 8Mbps bitrate for 1080 can be exceeded without re-rendering (in other words: they're allowing a higher bitrate for uploads these days). I don't remember what the limit would be, but up to about twice as much (16Mbps or a little more) should be accepted without re-encoding.


What difference does it make?


FCP uses codecs that Apple actually paid for on your behalf and their settings tend to result in the best possible output*. YouTube uses Open Source codecs. If you've used VLC, or something like ffmpg, you know you are responsible for all the "fine-tuning" settings to attempt to achieve the best output possible. You need to be an expert. Very few people are (I'm not)... and I would submit, neither are the people at YouTube responsible for setting up the re-encodes and you can bet it **will be** compressed more than your uploaded version and the video will look inferior.


*Best output settings from FCP intended for YouTube: Master File, Video and Audio, H.264 (AAC Audio). Don't use anything else — not Faster Encoding or Better Quality (**only** the Mastering Format options, not the Publishing or Broadcast settings). Do not Export to YouTube. Render your movie to a local hard drive and upload the file.


Here is a sample:

(Right click and Open in New Tab or Window to see at full size.)


Left side: Quicktime. Right side: uploaded video on YouTube. Bitrate of the original: 15.5mbits/sec (same as Mbps). [Original clip available on Pond5.]


Can you tell the difference? (I can't.)


If your video, on YouTube, appears to be less quality than expected, make sure you select the Settings gear at the bottom right of the video and the Quality setting is the same as your upload specifications.


YMMV




Jul 24, 2026 9:04 AM in response to fox_m

fox_m wrote:
@Old_Video_Guy stated:
Everything uploaded to YouTube goes through their own, proprietary compression algorithm.
My counterpoint:
If you upload according to recommendations, your media will (actually: may) be preserved as uploaded.
That's all.

Fox-m, you have made my point for me. You are absolutely correct in that if you upload to YT in the correct format, YT may pass the file through unchanged. My use of the word “everything” may have overstated it just a bit.


But if you upload a ProRes file, or some similar format that has only a slight amount of compression, YT will re-encode it to their standards.

Jul 21, 2026 12:04 PM in response to fox_m

This topic is solely about audio quality and whether different audio encodings sound different on YouTube.


This is a difficult area for objective analysis. With video, there are various tools to inspect video quality relative to a source. This includes Apple's AVQT command-line tool and the Netflix-designed VMAF tool, which is a special build of FFmpeg.


AVQT can be downloaded from the Apple Developer site, but that requires you to create a free developer account. See the WWDC21 talk on AVQT: "Evaluate videos with the Advanced Video Quality Tool."


On Mac, ffmpeg-VMAF is available through the Homebrew package manager.


For testing audio quality vs a source, there is ViSQOL, but I haven't used it. There is no Homebrew version, but it has a GitHub page. There's a reason why the study of this area is called psychoacoustics. It's good to use objective tests where possible.

Comparing Final Cut Pro and FFmpeg audio for YouTube uploads

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.