Feb13

ffmpeg + CUDA 批量压片

timg.jpg

ffmpeg配合Nvida显卡的CUDA,压片速度提高很多,对CPU的压力也相对减少。

使用微软的另一个利器power shell,批量压片(H.265)方便快捷。


Power Shell Scripts:

$file=[IO.File]::OpenText("d:\input.txt") ; 
while(!($file.EndOfStream) )
{
    $line=$file.ReadLine();
    $id = @();
    $id = $line.Split('|');
    echo $id[0];
    if($id[4] -eq '720'){ 
      echo "720";
      g:\Software\ffmpeg\bin\ffmpeg.exe -i $id[0] -ss $id[3] -vcodec hevc_nvenc -c:a aac -b:a 128k -b:v $id[2] -bufsize $id[2] -maxrate $id[2] -vf scale=-1:720 $id[1];
    }else{
      echo "normal";
      g:\Software\ffmpeg\bin\ffmpeg.exe -i $id[0] -ss $id[3] -vcodec hevc_nvenc -c:a aac -b:a 128k -b:v $id[2] -bufsize $id[2] -maxrate $id[2] $id[1];
    }
}
$file.Close();

上面-vcodec hevc_nvenc是指调用Nivida的显卡硬件加速。也可以选libx265,不过是CPU软压。

-c:v libx265

Input.txt里面存放需要压制的片源信息:

\\WDMYCLOUD\neo\movie\2012.2009.1080p.BluRay.mkv|2012.mp4|3000k|00:00:50|720
\\WDMYCLOUD\neo\movie\老无所依.mkv|老无所依.mp4|2000k|00:00:00|no

参数用“|”分割,第一个参数是原片,第二个参数是压缩后的文件名,第三个参数是码率,第四个参数是从开头多少时间剪切,第五个参数是尺寸是否720p


目前部分DTS音轨压制成AAC有问题,可以选择使用DCA编码,保持DTS不变。

 -c:a dca -strict -2

其中“-strict -2"是强制使用非正式编码器。


本篇文章已有0条评论