ffmpeg通过设置最终大小来转换视频

分享于 

2分钟阅读

ubuntu

  繁體

我使用以下示例文件:


wget http://dl3.h265files.com/TearsOfSteel_720p_h265.mkv




mediainfo 


--Inform="General;Duration=%Duration/String3%nFile size=%FileSize/String1%" 


TearsOfSteel_720p_h265.mkv


Duration=00:12:14.058 <-----


File size=101 MiB <-----



  • 1.重新编码为H.264(50mb)

    H.264现在已被广泛接受,将是输出视频文件的绝佳选择。计算所需的50mb的输出比特率的公式将是:

    
    (50 MiB * 8192 [converts MiB to kBit]) / 734 seconds = ~558 kBit/s total bitrate
    
    
    558 - 128 kBit/s (desired audio bitrate) = 430 kBit/s video bitrate
    
    
    
    

    要完成此操作,请使用以下FFmpeg 2pass命令:

    
    ffmpeg -y -i TearsOfSteel_720p_h265.mkv 
    
    
     -c:v libx264 -b:v 430k -pass 1 
    
    
     -c:a libmp3lame -b:a 128k -f mp4 /dev/null && 
    
    
    ffmpeg -i TearsOfSteel_720p_h265.mkv 
    
    
     -c:v libx264 -b:v 430k -pass 2 
    
    
     -c:a libmp3lame -b:a 128k TearsOfSteel_smaller.mp4
    
    
    
    

    生成的文件大小是49.4 MiB,

    2.重新编码到HEVC (mb )

    这一次公式是:

    
    (40 MiB * 8192 [converts MiB to kBit]) / 734 seconds = ~446 kBit/s total bitrate
    
    
    446 - 128 kBit/s (desired audio bitrate) = 318 kBit/s video bitrate
    
    
    
    

    FFmpeg 2pass命令行是:

    
    ffmpeg -y -i TearsOfSteel_720p_h265.mkv 
    
    
     -c:v libx265 -x265-params pass=1 -b:v 318k 
    
    
     -c:a libmp3lame -b:a 128k -f mp4 /dev/null && 
    
    
    ffmpeg -i TearsOfSteel_720p_h265.mkv 
    
    
     -c:v libx265 -x265-params pass=2 -b:v 318k 
    
    
     -c:a libmp3lame -b:a 128k TearsOfSteel_smaller.mp4
    
    
    
    

    这提供了一个40mb文件,质量相当合理。


  • SET  视频  Setting  尺寸  Ffmpeg  Final