我与我的高质量电影叠加:1080p 和 60fps。问题是玩的时候卡顿。
我尝试使用 ffmpeg 将其转换为 720p:
ffmpeg -i MyMovie.mkv -r 60 -s hd720 MyMovie_720p.mkv
Run Code Online (Sandbox Code Playgroud)
但是由于比特率从 32.3 Mbps 降低到 2.8 Mbps,因此质量损失很大。如何为视频流指定正确的比特率,并使所有其他流复制原始?
输入文件mediainfo:
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.2
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 2h 58mn
Bit rate : 32.3 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 59.940 …Run Code Online (Sandbox Code Playgroud) 我不想为 FFMPEG/libx264 (-r/-framerate) 提供固定的帧速率,而是想指定一个具有 MAXIMUM 值的可变帧速率,并允许 libx264 在它认为合适的时候降低帧速率。这里的想法是在有扩展静止帧之类的东西时获得额外的压缩(这在我的源视频中发生了很多)。
我意识到预测或双向 MPEG 帧会压缩得非常好,但也有可能源帧速率小于我打算转码的帧速率(可能导致更大的流!)。