0

我有两个 1920x1080 PNG 文件center.pngright.png,它们是相同的,只是图像中的图像right.png水平移动了 325 像素。

使用 mlt XML,我使用无损 FFV1 格式制作了一个两秒长的视频,显示一秒的 . center.png,然后一秒的right.png. 这是我的文件,foo.mlt

<?xml version='1.0' encoding='utf-8'?>                                           
<mlt>                                                                            
  <profile width="1920" height="1080"                                            
           display_aspect_num="1920" display_aspect_den="1080"                   
           sample_aspect_num="1" sample_aspect_den="1"                           
           colorspace="709" progressive="1"                                      
           frame_rate_num="30" frame_rate_den="1"/>                              
                                                                                 
  <consumer mlt_service="avformat" properties="lossless/FFV1" target="out.mkv"/> 
                                                                                 
  <producer id="center" mlt_service="qimage" resource="center.png" length="30"/> 
  <producer id="right"  mlt_service="qimage" resource="right.png"  length="30"/> 
                                                                                 
  <playlist>                                                                     
    <entry producer="center"/>                                                   
    <entry producer="right"/>                                                    
  </playlist>                                                                    
</mlt> 

然后我melt foo.mlt在终端运行并检查out.mkv我的视频查看器中的输出文件。然而,仔细观察,当right.png它出现在视频中时,它会略微失真(带有某种光晕类伪影)。这是一个放大的视图:

在此处输入图像描述

奇怪的是,只有right.png图像被扭曲了;center.png正确显示,即使这两个图像除了定位之外是相同的。

这是一个错误吗?我不希望无损编解码器有任何图像失真,但也许我做错了什么。

我的规格:

Ubuntu 20.04.2 LTS,64位
融6.25.0
ffmpeg版本4.2.4-1ubuntu0.1

谢谢

4

1 回答 1

1

“无损”并不总是无损的。在“无损/FFV1”的情况下,色度格式为 4:2:2,这会将色度分辨率减半: https ://github.com/mltframework/mlt/blob/master/presets/consumer/avformat/ lossless/FFV1 这可能是相关的,因为如果需要格式转换,它可能会导致不直接落在色度样本上的像素上的色度溢出。

作为一项实验,您可以尝试将图像移动 326 像素而不是 325 像素,以查看是否仍然出现出血。

不久前还有另一个与色度二次采样导致的出血有关的问题: 融化复合过渡略微混合

于 2021-02-19T02:04:23.373 回答