<p>Whelp finally figured this one out when I stumbled across the answer in another forum. Pretty simple really, just needed to study  up on <a href="http://ffmpeg.org/ffmpeg-filters.html#Filtergraph-syntax-1" rel="nofollow noreferrer">filtergraphs</a>. And for the record bwdif deinterlacing is FAR better than yadif! Not sure why anyone even recommends yadif anymore with bwdif out there...</p>

<p><code>-i inputfile -vf bwdif=0:0:0,scale=in_range=tv outputfile.mov</code></p>

CC BY-SA 4.0
2018-09-25T22:51:33.067Z
2018-09-25T22:51:33.067Z
Spencer
<p>I am working on a recipe to convert Avid DNxHD files which are rec.709 "legal" range (15-235 in 8bpc) to .png files which are "full" range (0-255). In looking around it seems that "colorspace" could do this, but I am quite new to FFMPEG filters and I can't seem to get it to work... I've looked all over the place but not found a solution to this simple question</p>

<p><code>-i video.mov -fv yadif=0:0:0,colorspace=srgb transcode_%04d.png</code> just throws an error, and I assume I just don't know the proper syntax (no real example for this in the manual, that I could find).</p>

<p>Separately i thought this might work: <code>-i video.mov -vf yadif=0:0:0,scale=in_range=tv:out_range=full transcode_%04d.png</code>. This runs without complaining, but the output .png's are still in legal range.</p>

CC BY-SA 4.0
2018-09-20T06:35:27.740Z
How are you checking pixel values?
Gyan
CC BY-SA 4.0
2018-09-20T18:27:43.607Z
@Gyan Pulling into After Effects and color sampling. I've got a file exported from Avid as legal, and another as full to compare against.
Spencer
CC BY-SA 4.0
2018-09-21T05:55:24.183Z
Take an input which has pure white or black in it and run: `ffmpeg -i video.mov -vf trim=end_frame=1,signalstats@pre,format=rgb24,signalstats@post  test.png` I assume the black/white portion is visible in the first frame. If not, add `-ss X` before `-i` where X should be a timestamp of a frame that has white/black in it. Share log. Add `2> log.txt` at end of cmd to generate it.
Gyan
CC BY-SA 4.0
2018-09-25T22:53:09.133Z
@Guyan I figured it out if you're interested! I just didn't fully understand filter chaining syntax in ffmpeg, and didn't realize that ffmpeg will automatically default to "full" range as long as I tell it that the source is "tv"...
Spencer
CC BY-SA 4.0
2018-09-26T04:48:50.963Z
That's not correct. Output range is determined by destination pixel format, which in turn depends on the pixel formats the encoder allows. `full` is not an automatic outcome.
Gyan
CC BY-SA 4.0
2018-09-26T06:40:23.167Z
@Gyan so I guess because I'm going to .png it is "automatically" working.
Spencer
<ffmpeg>
FFMPEG expand limited range to full range
Spencer
# FFMPEG expand limited range to full range

(Asked by: username_0 on 2018-09-20)

I am working on a recipe to convert Avid DNxHD files which are rec.709 "legal" range (15-235 in 8bpc) to .png files which are "full" range (0-255). In looking around it seems that "colorspace" could do this, but I am quite new to FFMPEG filters and I can't seem to get it to work... I've looked all over the place but not found a solution to this simple question

`-i video.mov -fv yadif=0:0:0,colorspace=srgb transcode_%04d.png` just throws an error, and I assume I just don't know the proper syntax (no real example for this in the manual, that I could find).

Separately i thought this might work: `-i video.mov -vf yadif=0:0:0,scale=in_range=tv:out_range=full transcode_%04d.png`. This runs without complaining, but the output .png's are still in legal range.

**Tags:** ffmpeg

> **Comments:**
> **username_1**: How are you checking pixel values?  
> **username_0**: @username_1 Pulling into After Effects and color sampling. I've got a file exported from Avid as legal, and another as full to compare against.  
> **username_1**: Take an input which has pure white or black in it and run: `ffmpeg -i video.mov -vf trim=end_frame=1,signalstats@pre,format=rgb24,signalstats@post  test.png` I assume the black/white portion is visible in the first frame. If not, add `-ss X` before `-i` where X should be a timestamp of a frame that has white/black in it. Share log. Add `2> log.txt` at end of cmd to generate it.  
> **username_0**: @Guyan I figured it out if you're interested! I just didn't fully understand filter chaining syntax in ffmpeg, and didn't realize that ffmpeg will automatically default to "full" range as long as I tell it that the source is "tv"...  
> **username_1**: That's not correct. Output range is determined by destination pixel format, which in turn depends on the pixel formats the encoder allows. `full` is not an automatic outcome.  
> **username_0**: @username_1 so I guess because I'm going to .png it is "automatically" working.  

---

## 1 answers

### Answer by username_0 on 2018-09-25. Score: 1

Whelp finally figured this one out when I stumbled across the answer in another forum. Pretty simple really, just needed to study up on [filtergraphs](http://ffmpeg.org/ffmpeg-filters.html#Filtergraph-syntax-1). And for the record bwdif deinterlacing is FAR better than yadif! Not sure why anyone even recommends yadif anymore with bwdif out there...

`-i inputfile -vf bwdif=0:0:0,scale=in_range=tv outputfile.mov`


---

