Answers:
但是我想知道是否有办法确定“好”目标比特率……
良好的目标比特率是以下任一比特率:
对于普通用户而言,22 Mbit / s或45 Mbit / s的确确实很高,尤其是对于已经压缩的视频(例如h.264)。您绝对可以继续将比特率降低为“合理”的值,并且始终要考虑到可以承受的存储容量和想要失去的质量。
如果您确实不需要大小或没有处理能力来编辑它,也可以将1080p视频的大小调整为720p。
…或者尝试进行可变比特率有什么意义
恒定比特率的关键是要适应流媒体场景,在这种情况下,瓶颈会限制所传输视频的最大比特率。在当今的多媒体世界中,这已不再有意义。
当您将视频压缩为每秒固定数量的比特时,您基本上告诉编码器始终使用相同数量的比特对相同时间帧进行编码。那是最好的方法吗?您可能已经猜到了,事实并非如此。引用Handbrake 的CRF指南(我稍后会再讲):
与静止物体相比,眼睛在静止物体中感知的细节更多。因此,视频压缩器可以在物体移动时应用更多的压缩(丢弃更多细节),而在物体静止时应用更少的压缩(保留更多细节)。从主观上讲,视频似乎具有更高的质量。
因此,尽可能使用可变比特率确实很有意义。即使在恒定比特率视频的文件大小相同的情况下,也可以使视频看起来更好。
更是这样,大多数编码器-最有名的一个是X264的 -通常执行非常当你告诉他们使用一个恒定比特率不好。从他们想花一帧多少位的角度来看,最好给他们更多的“自由度”。毕竟,这是编码器的工作,而不是您。这就是所谓的“恒定质量”。
足够了–在实践中这意味着什么?如果您使用FFmpeg对视频进行编码,那么您已经在使用足够好的工具。如果您现在还安装了x264,并且使用了两者的最新版本,那么您使用的是目前免费提供的最佳编码器之一。与其以固定的比特率进行编码,不如让x264选择要花费的金额。通过使用“ 恒定速率因子”选项来执行此操作。
在非常简单的情况下,这意味着将值设置为17到23。我选择MP4作为输出容器而不是MOV,因为可以使用更好的工具来进行多路复用:
ffmpeg -i input.mov -c:v libx264 -crf 22 output.mp4
值越低,质量越好,输出越大。反之亦然,质量越高,质量越低。同时,您当然会降低所需的平均比特率。有关更多信息,请查看x264编码指南ffmpeg
。
您现在的任务是找到一个CRF值:
是的,这涉及很多编码和反复试验,但这是您调试和编码视频时的日常工作。
哦,如果您不喜欢命令行,Handbrake是一个免费的,跨平台的工具,功能完全相同。它甚至具有一个CRF滑块:
-qscale
。对于mpeg *,比例是线性的,范围是1-31(31是最差的质量),将该值加倍将导致大约一半的比特率。值2在视觉上大致可以算是无损的。3-5通常是一个很好的平衡点,但是当然质量是主观的,您只需要尝试一下即可。
我想缩小一些MOV文件,并且不希望了解有关视频选项的所有详细信息。我使用的是HandBrake CLI。预设很好:
HandBrake提供了硬编码的出厂默认预设,这些预设与MacGui中的内置预设完全相同。
就我而言,这很好用:
HandBrakeCLI -i input.MOV -o output.mp4 --preset="Normal"
没有预设,输出很小,但质量不好。“正常”预设对我来说不错,但是您可以使用来查看其他可用的预设,也可以HandBrakeCLI --preset-list
根据需要自己调整所有选项。