Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: It's 2021 and QuickTime still doesn't export MP4. What is going on?
61 points by reimertz on Aug 12, 2021 | hide | past | favorite | 69 comments
Every time I do a screen recording, I have to go trough the hassle of converting the video to MP4 on my Apple computer.

Even my iPhone can export to MP4 so I there is no reason for it not to work on my computer.

Come on Apple, please fix this super annoying business crap from the past when you tried to increase QuickTime installs on Microsoft machines by enforcing this now ancient format.

Just get over it.




Handbrake for MacOS is far better than anything Apple could come up with in-house. It's free as well. Converts anything into anything.

I first heard of Handbrake 15 years ago when a friend told me he borrowed DVDs from the college library and burned them to his HDD using it. I started using it myself only in 2021 to compress videos for web projects. A 2MB MP4 video I've managed to compress to 200KB without much visual degradation on mobile.

https://handbrake.fr/


It seems like several Mac OS utilities get no or negative attention. QuickTime, Image Capture, Disk Utility, and the Finder itself are broken or are missing features. I doubt Apple will repair them.


The Disk utility downgrade is still annoying to this day.

The worst example of neglect though imho is how finder still doesn’t have an option to cut when you right click. How hard would it be to add that so folks don’t have to learn a keyboard shortcut?


Well, technically it does. After copying an item, when you right-click where you want to paste it to, if you hold the ⌥ (option) key, the 'Paste Item' option in the contextual menu will change to 'Move Item Here' (effectively making it into a Cut & Paste).


Finder is also broken for AppleScript as it doesn't refresh itself when AppleScript makes changes. Plus, its refresh logic (probably related) is slow.


I find Image Capture to be perfect with the exception of the default file naming scheme (please just name the first file ‘Scan 1’, that would make so much more sense). QuickTime on the other hand is an embarrassment but I guess with alternatives like IINA it hardly matters.


My current beef with Image Capture is that in either Big Sur or Catalina (can't remember which), they defaulted to converting HEIC to JPG, rather than preserving the original format, and moved the checkbox that let you know it's doing that to a menu you have to hunt for. If an image downloader is doing conversions, it should be more transparent about it.


Also, some of the options don't actually do anything. The delete after import is broken and it won't default to a directory of your choosing like the previous version.


Say what you will about Disk Utility. I’d still pick it 10 times out of 10 over Windows Disk Management. It’s still unchanged in Windows 11.


Making a comparison to windows is just picking low-hanging fruit.

GParted is still hands-down the best.


I’m also a big fan of the diskutil command line utility.


Absolutely. I find it much more intuitive than fdisk, for example.


well sure, but fdisk is a command line utility that you don't use unless you have no other choice, the windows equivalent to disk utility is disk management (inside computer management), but it's been as "not updated in forerer" as quicktime on macos.


Don't fix it if it ain't.


Not sure if this is a hot take or not, but Finder is the worst file explorer I've used. Feels like your file structure is hidden from you, because heavens forbid that I can go to my home directory quickly. Honestly, it's not awful, but Gnome Files, Dolphin, and Windows Explorer are all more user friendly IMO.


With Finder defaults, I can see what you mean, but after turning on Show Path Bar (with either ⌥⌘P or ViewShow Path Bar), Finder is much nicer to use.

As for quickly navigating to your home directory, you can either spam ⌘↑ (or GoEnclosing Folder) to go up to parent directories, or simply use ⇧⌘H (or GoHome) to go straight to your home directory.


Thank you, these are nice to know!


No prob, glad to help!


Was just thinking this about their Photos and Music apps on Catalina. Pretty bad UX but they’ve had plenty of time to fix them and haven’t. I guess snooping through data after customers throw them loads of cash for their devices is the new business model.


With sincere love and respect to my Mac-using colleagues, this is a common genre of late: "How can Apple be so terrible to us who love them so much?"

As I similarly say to those who engage in lengthy, anguished discourse about how it's possible that a loving God could allow such utter randomness and chaos in the world: "There is a simple answer that completely resolves this conundrum if you were but willing to hear it"


So, is the answer that Apple doesn't exist, or that Apple doesn't love us?


Left as an exercise for the downvoters ;)


Apple only exists when they make you feel loved.


I'm still bitter that they removed variable speed and variable pitch playback. It was invaluable, and there was no reason to remove it.


One reason to remove the features is if they started supoorting another format (HEVC? ProRes?) for which thir decoder doesn't yet support these operations?


Even if that were the true motivation (which I don't believe), there's a standard UI paradigm for that: grey out the control if it doesn't apply.

I'm more inclined to believe that it was a UX designer with a misplaced drive to simplify at all costs.


On Catalina at least, variable-speed constant-pitch playback is still available, just hidden. Option-click on the fast-forward or rewind buttons to access it. It jumps in increments of 0.1x.


Thanks, I didn't know that! It doesn't let you go slower than 1x speed though, which was the useful thing. I used to use it to learn tunes by playing half speed.


macOS is full of things that randomly pop up if you click something while holding a button. That UX is so hilariously bad it makes features hard to find even when you already know they are there!


OP isn't accurate.

It exports as MP4/H.264. I just did it.

It's done it this way forever in macOS/OS X/Mac OS X.

Edit: https://imgur.com/a/7bHL9VK


Not sure if OP is accurate here? Please correct me if I’m wrong.

If you export from QuickTime using the Apple Devices preset on export, that is an MP4 profile. Simply export and then rename the file from .m4v to .mp4. I’ve done this countless number of times.


2021 is the year .mov finally breaks out


The *.mov file format is the same as MPEG-4's container format (in fact, MPEG-4's container is intentionally based on QuickTime's *.mov) and is even standardized as an ISO spec: "ISO/IEC base media file format": https://en.wikipedia.org/wiki/ISO/IEC_base_media_file_format + https://en.wikipedia.org/wiki/QuickTime_File_Format

...and Apple has been using MPEG-4 AVC and HEVC for at least a decade now, so I don't understand what the OP is complaining about: QuickTime *.mov files are MPEG-4 container files, which usually contain MPEG-4 AVC or MPEG-4 HEVC streams.

Other people are reporting the same problem: the other media software can't read Apple's screen-recording files, so I'm assuming this actually means that Apple's screen-recordings are saved using a codec other than MPEG-4 AVC or HEVC, but still in an MPEG-4 container. So for this conversation to continue, we need to know what codec/video-stream-format is actually being used (I don't have a Mac ready to experiment right now, sorry).

-----

UPDATE: After some research, I think that macOS screen-recordings are made using Apple's ProRes video coding, and then saved inside a QuickTime (aka MPEG-4) Container.

ProRes is very different to AVC, HEVC, etc, which explains why you need to transcode it to do anything useful with it.

-------

UPDATE 2: So screen recordings don't use ProRes by default, they use AVC (but what profile?), so I'm unsure why so many other programs and websites reject those files because, theoretically, there should be no problem in processing them, unless the site was written by someone who doesn't understand how video files work...


I don't know much about codecs, but I just did a screen recording and checked it out with VLC: H264 - MPEG-4 AVC (part 10) (avc1)


What software did you use to make it?


QuickTime does screen recording. This is my default assumption when someone makes a screen recording on a Mac.


Just tried making a screen recording with QuickTime on my Mac and investigating it with the "mediainfo" command-line tool (available on Homebrew).

It's absolutely h.264, not ProRes. It's similarly h.264 when you record from the built-in webcam in QuickTime using the default "high" quality, but switches to ProRes if you select "maximum" quality for recording. (ProRes files are enormous, BTW.)

A lot of people report that simply renaming a "mov" file to "mp4" works when the data is h.264 such as in this case. Unfortunately every tool I have which takes .mp4 as input also accepts .mov, so I can't actually verify this since for all I know my tools might be ignoring the extension and autodetecting mov. But if anyone knows any websites that accept mp4 but not mov I'd be happy to test an upload and see if it works.

Edit, for anyone interested, here's the relevant output from mediainfo:

  General
  Format                                   : MPEG-4
  Format profile                           : QuickTime
  Codec ID                                 : qt   0000.00 (qt  )
  ...
  Overall bit rate mode                    : Variable
  Overall bit rate                         : 4 014 kb/s
  ...
  
  Video
  ID                                       : 1
  Format                                   : AVC
  Format/Info                              : Advanced Video Codec
  Format profile                           : Main@L5.1
  Format settings                          : CABAC / 2 Ref Frames
  Format settings, CABAC                   : Yes
  Format settings, Reference frames        : 2 frames
  Codec ID                                 : avc1
  Codec ID/Info                            : Advanced Video Coding
  ...
  Bit rate mode                            : Variable
  ...
  Frame rate mode                          : Variable
  ...
  Color space                              : YUV
  Chroma subsampling                       : 4:2:0
  Bit depth                                : 8 bits
  Scan type                                : Progressive
  ...
  Color range                              : Limited
  Color primaries                          : BT.709
  Transfer characteristics                 : BT.709
  Matrix coefficients                      : BT.709
  Codec configuration box                  : avcC


I made a QT screen recording earlier this week, exported to 1080p, and uploaded it to Microsoft Streams, which worked fine.

So either the QT export was a standard h.264 file, or Microsoft Streams is set up to recognize whatever weirdness comes out of QT (which seems unlikely to me).


Oh, interesting!

I guess the reason why I've assumed somethings off is because both Google Drive, Youtube etc. seems to take 10x longer do encode MOV files vs. raw MP4.

So you are saying there shouldn't be a difference then?


There are roughly (I am not an expert in this) three things that make up a video file. A container format, then a video and audio encoding. MP4 is a container format. Think of it like a stream optimized zip file. Then inside this container, various video and audio codec actually do the work of compression their respective components. While MP4 is based on the MOV container format, I don't know if they are 1:1. So at minimum, all the contents would need to be unpacked and moved to the MP4 container format if the codecs were staying the same. That doesn't sound like what is happening here as that should be really quick. (If that's even possible).

That's why parent was asking about codecs, if the MOV has video in MPEG-1 and Google wants it in H.264, it has to reencode the video stream.


> seems to take 10x longer do encode MOV files vs. raw MP4

> So you are saying there shouldn't be a difference then?

There should be no difference if the video coding (codec aka "video format" aka "compression-standard" ) is already one of the standards (e.g. AVC, HEVC, etc). For example, AVC video in a RIFF file[1] should be able to be converted to AVC video in an ISO BMFF (aka QuickTime MOV) file without performing any transcoding at all, so it should take however long it takes for your computer to literally copy bytes from one file into another.

The evidence suggests that Apple's screen-recordings are made using the "ProRes 4444" codec, which explains why other programs need it to be transcoded, and why YouTube takes longer: https://support.apple.com/en-us/HT202410

[1] I believe this is theoretically possible, if utterly impractical


Screen recordings don't use ProRes – they're just standard MOV containers with H.264 in them. I recorded one now and ffprobe says:

  Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './test.mov':
  ...
  Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 900x492 [SAR 1:1 DAR 75:41], 1666 kb/s, 58.45 fps, 60 tbr, 6k tbn, 12k tbc (default)


Quicktime screen captures use H.264 Main@L5.2 variable-framerate (and normal 8-bit with 4:2:0 chroma subsampling), it's possible that Google are enforcing a transcode because of some rules they have on decoder complexity / limiting quality of H.264? I know Google prefer their own VP* codecs everywhere.

You could test whether the container format makes a difference by using the following FFmpeg commandline (e.g. if the output of this is any faster to ingest than the original .mov it could be that Google's ingest process sees some unexpected atom/table in the .mov that aren't used in .mp4?

ffmpeg -i screen-capture.mov -codec:a copy -codec:v copy capture.mp4

Edit: typo in the original post (had codec:c rather than codec:a)


I suggest running ffprobe first, just to make sure we know what the input really is.

> 4:2:0 chroma subsampling

It would be very un-Apple-like to make screen-recordings with chroma subsampling: that's the best way to make colorful hard edges look awful, and macOS is full of colorful hard edges.


They are using 4:2:0. You'll get no argument from me that 4:4:4 (or at least 4:2:2) would be nicer, but I don't see any major issues visually with their fairly high bitrate capture encoding settings.

Here's a mediainfo output for a Quicktime screen capture on the latest Big Sur release on an Intel Mac: https://pastebin.com/8SUZqMed

Edit: posted wrong output, fixed pastebin output to show the .mov straight out of quicktime (previously had a remux via ffmpeg)


1) File > Export as > Save

2) Change file extension .mov -> .mp4


I remember when you had to register Quicktime for a code to unlock features in it.


I remember when Quicktime Player was a pretty capable video editor...


I remember when Quicktime worked on Windows.


I remember when Apple loved its users.


I can understand your pain. Years ago when I started a side project, I faced a similar issue with Quicktime so I decided to just build a screen recorder which exports to .mp4 by default. It saved me a lot of time and headache.


For years I kept QuickTime 7 Pro around after X came out.

For the record, you can just say save -> change to MP4.

But no, QuickTime X is hot garbage; and pretty much represents the kind of downgrade we got from iMovie HD to iMovie 7/X, or the similarly awful FCP transition.


iMovie can export to mp4, so I don't think it's an attempt at lock-in. I would guess it's just that like a lot of the macOS utilities, QuickTime gets very little development focus as of late.


Keynote can export to MP4 as well.


Is it being worked on? If its not being worked on its not going to happen. Find another tool. It's silly but it seems like its not a priority.


I don’t know much about this but wiki says QTkit was deprecated and superseded by AVFoundation

Edit: Not QuickTime, qtkit. QuickTime itself hasn’t seen an update in two years but isn’t considered deprecated I guess.


The framework/API, but the app is very much not deprecated as it is still bundled with the OS.


Safari on iPhone also does not play webm files.


This is false


Partial support with some pretty heavy caveats compared to Chrome and Firefox. In this case most developers wouldn't bother w/ WEBM and serve every device the MP4 file instead.

https://www.caniuse.com/webm


You can, why lie?


Honestly, do you expect Apple to change from their lock-in ways?


Since the iPhone can do it, as OP wrote, not sure your point is relevant.


Can't you just use a modern screen recording tool like Screenflow?


It's open source, just contribute a patch.

Oh wait..


Honestly screw mp4. They put the header at the end of the file so you can’t stream it unless its specifically made for the web. I can watch most video files “while downloading” except mp4. It’s nonsense.


MP4 also supports putting the MOOV atom at the beginning of the file (which allows to start watching while downloading), it's up to the encoder to place it there. The reason it's often at the end of the file, is that the MOOV atom is variable-length and the whole stream needs to be processed to generate it. Thus, placing it at the end is faster.


Right, that’s the problem, it should just never happen. Hence the screw mp4


There are lots of usecases where random access is guaranteed and spending the extra time moving the atom to the front isn't worth it. Your personal needs aren't representative of those of the rest of the world.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: