2

I took over the editing for a project recently and I wasn't given the raw files. All I was given was the partially completed MP4 file. I used Final Cut Pro 7 to complete the project edits. When I exported the file, I exported using Quicktime Conversion to create a .mov file.

The issue is that this file must be broadcast quality and it just failed QC because parts of it are pixilated.

I'm wondering, is there a way to export the file - which looks perfect on my end - so that it isn't pixilated and it passes QC?

1 Answer 1

1

If the pixelation wasn't in the sources you had, then it was probably introduced by the video encoder you used to export. (Presumably Apple's h.264 encoder, creating a .mov with an h.264 video stream, as opposed to one of the many other video codecs that the mov container can hold.)

Video encoding always trades off CPU time vs. bitrate vs. quality. Using more CPU time can get better quality at the same file size. Different encoders (x264 vs. mainconcept vs. apple vs. IDK what else) will have worse or better achievable tradeoffs. x264 is the best H.264 encoder for pretty much everything, esp. if you care most about final quality per file size. It's free and open source, so there's no reason not to use it.

Look for a slider to turn up the CPU usage and/or bitrate until the resulting encode is high enough quality. I'm not going to go into any more detail, just google for video encoding guides to find out more.

edit: As stib points out, you might well be in a situation where your output file is going to be transcoded before broadcast, in which case you should just turn up the bitrate as high as is reasonable, to minimize generation loss. Prores has no advantage over h.264 for this purpose, though. Your file will be decoded once, at full rez, in order. Prores is intra-only, and can decode faster at reduced rez, but gives up quality per bitrate in order to gain those features. h.264 and prores both support bit depths higher than 8bit per component (subject to encoder/decoder support), which may be relevant if the TV station that will broadcast it wants to mess with the colors during transcode. If they won't, then the small compression advantage of 10bit h.264 is of low value, given how much slower x264 is when encoding at higher than 8bit.

prores is (slightly) lossy, but as far as I know, h.264 at the same very high bitrate will be even less lossy. You can even use x264 to produce lossless h.264, if the people you're sending it to can decode it.

If you were sending it to people that were going to do something and save that as prores themselves, then using prores yourself might make sense. I think I read that prores is designed to stop losing quality for multiple generations of transcoding.

If you're going to permanently archive the output file, spending some more CPU time (and using x264) to get good quality per bitrate might still be useful. But if you're instead archiving the FCP project and sources, then that doesn't matter.

end of edit

If you don't want to set up x264 for Final Cut Pro, or export lossless and feed that to x264, then similar controls for the h.264 encoder that comes with FCP probably exist. I don't use FCP, but this is really a video-encode-quality question, so I'm answering anyway. An answer from a FCP user would probably still be useful.

BTW, one case where x264 isn't the best choice is encoding a movie for your mobile device or something where you're only going to watch it once, and large filesize doesn't matter. Then a GPU encoder like Intel quicksync can throw enough bitrate at the video for it to look good enough on a tablet or phone, but be smaller than the dvd or blu-ray source.

If you're doing "encode once -> watch many", like for broadcast, it makes sense to use as much CPU time as you can, to get the best quality for your target filesize (2pass mode). Or to get the smallest filesize for your target quality (CRF mode).

9
  • 1
    If he's sending it off for broadcast (and here I'm assuming DVB terrestrial broadcast, as in "on the telly") it will probably be transcoded before the end user watches it anyway. So it's not really an encode once → watch many situation. Better to find out what codecs / formats are accepted by the broadcaster and do the highest quality transcode that fits. For example, the TV stations here in Australia accept ProRes (HQ) encoded quicktime mov media which is great, because there's no guesswork about bitrates or h.264 settings, and it's a damn good codec.
    – stib
    Apr 13, 2015 at 5:58
  • I was thinking Danielle was maybe at a TV station, making broadcast encodes, but your interpretation of the question makes more sense. Updated. Apr 13, 2015 at 6:16
  • I probably have a worse impression of prores than you, since I've only ever seen the slow implementation in ffmpeg, not Apple's. I get that it's fast and convenient for a lot of things due to software support in commercial stuff. I'd be curious to see how x264 did in quality per bitrate, with settings that make it encode as fast as prores. As I understand it, prores only really shines as a codec for scratch files that you want to be able to scrub / frame-accurate-seek / fast-decode-at-low-rez, and to avoid generation loss if I'm remembering that part correctly. Apr 13, 2015 at 6:18
  • Well the big advantage Prores (and dnxHD and even v210) has over h.264 for mastering is that it's 10-bit 4:2:2, rather than 8-bit 4:2:0 (I realise you can do higher bit-rates and lower subsampling if you use the newer features of x264, but good luck getting a TV station to recognise the files). And that's another advantage: because there are no settings to change you don't have to worry about whether your ChromaQPOffset, WeightedBPrediction or VBVInitialBuffer (etc etc) settings are compatible. If you can afford the bandwidth and the processing time it saves a lot of headaches.
    – stib
    Apr 13, 2015 at 7:01
  • Do people really still use h.264 decoders that can't handle all of High profile? (weightb is the only option you mentioned that does anything requiring decoder support, but I know what you mean.) I'll grant you that it's inconvenient to get 10bit x264 set up, and decoder support for anything but 8-bit 4:2:0 is limited. However, if that's what you ARE doing, then just set x264 preset=medium crf=14 and don't touch anything else. You'll get a h.264 High profile encode, which any compliant decoder will handle. h.264 High profile hasn't changed for a decade. Apr 13, 2015 at 15:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.