Answers.Body: <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>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-09-25T22:51:33.067Z
Answers.LastActivityDate: 2018-09-25T22:51:33.067Z
Answers.UserDisplayName: Spencer
Body: <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>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-09-20T06:35:27.740Z
Comments.Text: How are you checking pixel values?
Comments.UserDisplayName: Gyan
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-09-20T18:27:43.607Z
Comments.Text: @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.
Comments.UserDisplayName: Spencer
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-09-21T05:55:24.183Z
Comments.Text: 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.
Comments.UserDisplayName: Gyan
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-09-25T22:53:09.133Z
Comments.Text: @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"...
Comments.UserDisplayName: Spencer
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-09-26T04:48:50.963Z
Comments.Text: 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.
Comments.UserDisplayName: Gyan
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-09-26T06:40:23.167Z
Comments.Text: @Gyan so I guess because I'm going to .png it is "automatically" working.
Comments.UserDisplayName: Spencer
Tags: <ffmpeg>
Title: FFMPEG expand limited range to full range
UserDisplayName: Spencer
ThreadText: # 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`
  
  
  ---
  
  