[FFmpeg-user] clipping samples to broadcast range in an mpeg2video output

Paul B Mahol onemda at gmail.com
Sun Feb 7 19:42:05 CET 2016


On 2/5/16, Paul B Mahol <onemda at gmail.com> wrote:
> On 2/5/16, Dave Rice <dave at dericed.com> wrote:
>> Hi all,
>> I am having trouble creating an mpeg2video output that conforms to 16-235
>> broadcast range. I'd like to find a way to have an input which is yuv420p
>> but has luma values out of broadcast range but clip to broadcast range
>> while
>> encoding to mpeg2.
>>
>> To demonstrate the issue, I generate a yuv420p file with samples in the
>> out
>> of broadcast range via:
>>
>> ffmpeg -f lavfi -i
>> "nullsrc=s=256x256,geq=random(1)/hypot(X-cos(N*0.07)*W/2-W/2\,Y-sin(N*0.09)*H/2-H/2)^2*1000000*sin(N*0.02):128:128"
>> -c:v ffv1 -t 10 sample.mkv
>>
>> I can then clip the samples using clipval in the lut filter and see the
>> clipped values in a waveform with:
>>
>> ffmpeg -i sample.mkv -vf lut=y=clipval:u=clipval:v=clipval -c:v ffv1 -f
>> nut
>> - | ffplay - -vf waveform
>> The waveform shows the values clipped at 16 and 235.
>>
>> However I need the output to use mpeg2video. When I change lossless ffv1
>> to
>> mpeg2video with:
>>
>> ffmpeg -i sample.mkv -vf lut=y=clipval:u=clipval:v=clipval -c:v
>> mpeg2video
>> -f nut - | ffplay - -vf waveform
>>
>> The output shows many sample values above 235. The lossy mpeg2video
>> encoding
>> seems to place values above 235 while the lossless ffv1 doesn't. Is there
>> a
>> way to encode in mpeg2video without having values over 235 in the output?
>
> Appears to be mpeg2video bug, can others confirm?
>

It appears that having out of range values is OK, its player
responsibility to clip values that are out of range.


More information about the ffmpeg-user mailing list