<p>As I understand it, ffmpeg creates a raw image buffer with the input files it is given, then applies effects such as scaling and then encodes. So if you use ffmpeg to do the scaling and encoding to a 4:4:4 codec it should do what you want:</p>

<pre><code>ffmpeg -i "my_gh4_422_4k.mov" -vf scale=1920:1080 -c:v prores -profile:v 4 -c:a copy "my_prores_444_1080.mov"
</code></pre>

<p>It would be interesting to test this, but I don't have any 4:2:2 4k footage on hand. I believe ffmpeg also does dnxhd 444, but I can't find any documentation on how to specify it.</p>

CC BY-SA 3.0
2015-02-06T12:12:46.647Z
Hmm, tried that, but got an error...
"Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height"
Think I installed ffmpeg correctly using Homebrew etc..
tomh
CC BY-SA 3.0
2015-02-06T12:16:51.373Z
hmm, you might have to specify a pixel format. Try adding `-pix_fmt yuv444p10` before the output file path
stib
CC BY-SA 3.0
2015-02-06T12:17:07.303Z
ok will try - also saw this error "[prores @ 0x7f9f520a8a00] unknown profile 4, use [0 - apco, 1 - apcs, 2 - apcn (default), 3 - apch]
[prores @ 0x7f9f53000c00] ff_frame_thread_encoder_init failed"
tomh
CC BY-SA 3.0
2015-02-06T12:18:26.027Z
maybe install ffmbc and see if you have any more luck with it (same command just with ffmbc instead of ffmpeg)…
stib
CC BY-SA 3.0
2015-02-06T12:18:26.243Z
This gives an additional error "[NULL @ 0x7fb3c4055c00] Unable to find a suitable output format for 'yuv444p10'
yuv444p10: Invalid argument"
tomh
CC BY-SA 3.0
2015-02-06T12:19:57.510Z
That error usually means you've missed the name of the option, and it's reading the parameters as if they were he output file. Check your typing. eg instead of -pix_fmt yuv444p10 you might have just typed yuv444p10
stib
CC BY-SA 3.0
2015-02-06T14:27:51.560Z
Let us [continue this discussion in chat](http://chat.stackexchange.com/rooms/20896/discussion-between-tomh-and-stib).
tomh
CC BY-SA 3.0
2015-02-06T14:30:03.817Z
This seemed to work:
ffmbc -i "inputfile.MOV" -vf scale=1920:1080 -vcodec prores -profile hq -pix_fmt yuv444p10 -acodec pcm_s24le  "my_prores_444_1080.mov"
tomh
CC BY-SA 3.0
2015-04-11T12:02:40.400Z
probably `-acodec copy` would make more sense, unless you WANT the audio stored as raw PCM.  And yeah, that should get ffmpeg to downscale the luma plane horizontally and vertically, and downscale the chroma only in the direction it's not already subsampled.  (i.e. not upsampling to 4:4:4 4k before downscaling.)  You might want `-sws_flags lanczos+print_info` for higher quality downscaling than the default bilinear (and to enable printing a line in the output about swscale's chosen options).
Peter Cordes
CC BY-SA 3.0
2015-02-06T07:01:17.333Z
2015-02-06T07:01:17.333Z
stib
<p>We have a Lumix GH-4 camera, which can shoot in 4K with 4:2:2 color space.
I'd like to be able to convert the footage to 1080p 4:4:4 color space.
I've read that there some ways of doing this:</p>

<p><a href="http://www.dvxuser.com/V6/showthread.php?330608-GH4-Downsample-4K-to-1080p-10-bit-4-4-4" rel="nofollow">http://www.dvxuser.com/V6/showthread.php?330608-GH4-Downsample-4K-to-1080p-10-bit-4-4-4</a>
<a href="https://forums.adobe.com/thread/1483696" rel="nofollow">https://forums.adobe.com/thread/1483696</a></p>

<p>But I can't find a definitive step by step way of doing this.<br>
I have the following tools:  </p>

<p>Adobe CS6 After Effects &amp; Premiere.<br>
Final Cut X or 7.<br>
Davinci Resolve v10</p>

CC BY-SA 3.0
2015-02-05T17:22:03.687Z
Brilliant question.  I'm going to guess that the answer is no, but I'd love to be proven wrong.
Jason Conrad
CC BY-SA 3.0
2015-02-06T05:46:10.480Z
Just a note: 4:4:4 isn't higher *depth* but just higher *resolution*. Your dynamic range will be the same, but the colours won't be sub-sampled.
stib
CC BY-SA 3.0
2015-02-06T10:06:10.580Z
Good point - updated the title
tomh
CC BY-SA 3.0
2015-11-07T22:11:36.903Z
Doing this makes sense if you don't need 3840x2160 luma resolution, but you don't want to downscale the chroma as much.  (i.e. downscale chroma from 1920x2160 to 1920x1080, instead of to 960x1080).  This only increases the chroma resolution relative to luma.  In absolute terms, **you're still downscaling both luma and chroma**.  (If your source was 4k 4:2:0, downscaling to 1920x1080 4:4:4 would be able to leave the chroma plane unchanged.)
Peter Cordes
<4k><color><colorspace><gh4>
Downsampling 4K footage for an increase in chroma sub-sampling
tomh
# Downsampling 4K footage for an increase in chroma sub-sampling

(Asked by: username_0 on 2015-02-04)

We have a Lumix GH-4 camera, which can shoot in 4K with 4:2:2 color space.
I'd like to be able to convert the footage to 1080p 4:4:4 color space.
I've read that there some ways of doing this:

<http://www.dvxuser.com/V6/showthread.php?330608-GH4-Downsample-4K-to-1080p-10-bit-4-4-4>
<https://forums.adobe.com/thread/1483696>

But I can't find a definitive step by step way of doing this.  
I have the following tools:

Adobe CS6 After Effects & Premiere.  
Final Cut X or 7.  
Davinci Resolve v10

**Tags:** 4k, color, colorspace, gh4

> **Comments:**
> **username_1**: Brilliant question.  I'm going to guess that the answer is no, but I'd love to be proven wrong.  
> **username_2**: Just a note: 4:4:4 isn't higher *depth* but just higher *resolution*. Your dynamic range will be the same, but the colours won't be sub-sampled.  
> **username_0**: Good point - updated the title  
> **username_3**: Doing this makes sense if you don't need 3840x2160 luma resolution, but you don't want to downscale the chroma as much.  (i.e. downscale chroma from 1920x2160 to 1920x1080, instead of to 960x1080).  This only increases the chroma resolution relative to luma.  In absolute terms, **you're still downscaling both luma and chroma**.  (If your source was 4k 4:2:0, downscaling to 1920x1080 4:4:4 would be able to leave the chroma plane unchanged.)  

---

## 1 answers

### Answer by username_2 on 2015-02-06. Score: 1

As I understand it, ffmpeg creates a raw image buffer with the input files it is given, then applies effects such as scaling and then encodes. So if you use ffmpeg to do the scaling and encoding to a 4:4:4 codec it should do what you want:
ffmpeg -i "my_gh4_422_4k.mov" -vf scale=1920:1080 -c:v prores -profile:v 4 -c:a copy "my_prores_444_1080.mov"

It would be interesting to test this, but I don't have any 4:2:2 4k footage on hand. I believe ffmpeg also does dnxhd 444, but I can't find any documentation on how to specify it.

> **Comments:**
> **username_0**: Hmm, tried that, but got an error... "Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height" Think I installed ffmpeg correctly using Homebrew etc..  
> **username_2**: hmm, you might have to specify a pixel format. Try adding `-pix_fmt yuv444p10` before the output file path  
> **username_0**: ok will try - also saw this error "[prores @ 0x7f9f520a8a00] unknown profile 4, use [0 - apco, 1 - apcs, 2 - apcn (default), 3 - apch] [prores @ 0x7f9f53000c00] ff_frame_thread_encoder_init failed"  
> **username_2**: maybe install ffmbc and see if you have any more luck with it (same command just with ffmbc instead of ffmpeg)…  
> **username_0**: This gives an additional error "[NULL @ 0x7fb3c4055c00] Unable to find a suitable output format for 'yuv444p10' yuv444p10: Invalid argument"  
> **username_2**: That error usually means you've missed the name of the option, and it's reading the parameters as if they were he output file. Check your typing. eg instead of -pix_fmt yuv444p10 you might have just typed yuv444p10  
> **username_0**: Let us [continue this discussion in chat](http://chat.stackexchange.com/rooms/20896/discussion-between-username_0-and-username_2).  
> **username_0**: This seemed to work: ffmbc -i "inputfile.MOV" -vf scale=1920:1080 -vcodec prores -profile hq -pix_fmt yuv444p10 -acodec pcm_s24le  "my_prores_444_1080.mov"  
> **username_3**: probably `-acodec copy` would make more sense, unless you WANT the audio stored as raw PCM.  And yeah, that should get ffmpeg to downscale the luma plane horizontally and vertically, and downscale the chroma only in the direction it's not already subsampled.  (i.e. not upsampling to 4:4:4 4k before downscaling.)  You might want `-sws_flags lanczos+print_info` for higher quality downscaling than the default bilinear (and to enable printing a line in the output about swscale's chosen options).  

---

