首先我要说明,我不懂ffmpeg处理视频的过程,所以目前就是根据命令行在瞎用,目前一般情况下压缩效率还行,高于等于720p分辨率的压缩效率还行,比如本例中的视频 但肯定有很大改进空间。但360p分辨率压缩效率就差,居然还压缩比还无法超过B站用x264编码压缩的视频。
我想到有些视频不需要用很高的色彩,毕竟根据图片压缩经验从24位色彩降低到265色的话文件大小立即变小,当然我没在ffmpeg文档中找到很激进的色彩设置,所以降低色彩参数用的是bt470bg或m,但这样压缩后视频文件大小未被压缩,画面有一点点细微差异总之非特定情况下无法察觉。主要是围绕colorprim=bt470bg:transfer=bt470bg:colormatrix=bt470bg这仨参数,我分别在libx264 libx265编码器都试过,用colorspace滤镜也试过,都无法进一步压缩文件大小。
我在libx265-params里加入这些参数定义 colorprim=bt470bg:transfer=bt470bg:colormatrix=bt470bg 也能生效,但很奇怪用PotPlayer看属性 视频metadata的 colour_primaries_Original 和 colour_primaries参数成对出现,用ffprobe -v error -show_streams倒是看不出来异常,但是看文件属性中的压缩比 Bits/(Pixel*Frame) : 0.029 ,我理解这个值达到0.016附近会比较好。
另外,我也发现从metadata来看我的压缩过程不规范。
General
Unique ID : 17736959944534812119367205992777565793 (0xD5803A47184D2586A6B96A3AFE2C661)
Complete name : F:\导出\VID_20250131_194029装饰灯光color_bt470bg vorbis_scale0_compress7_voip_cutoff0.mkv
Format : Matroska
Format version : Version 4
File size : 62.0 MiB
Duration : 10 min 7 s
Overall bit rate mode : Variable
Overall bit rate : 856 kb/s
Frame rate : 29.417 FPS
Writing application : Lavf60.3.100
Writing library : Lavf60.3.100
ErrorDetectionType : Per level 1
COM.ANDROID.VERSION : 10
Video
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main@L3.1@Main
Codec ID : V_MPEGH/ISO/HEVC
Duration : 10 min 7 s
Bit rate : 775 kb/s
Width : 720 pixels
Height : 1 280 pixels
Display aspect ratio : 0.562
Frame rate mode : Constant
Frame rate : 29.417 FPS
Color space : YUV
Chroma subsampling : 4:2:0 (Type 0)
Bit depth : 8 bits
Bits/(Pixel*Frame) : 0.029
Stream size : 56.1 MiB (91%)
Title : VideoHandle
Writing library : x265 3.5+96-9c9ab68fc:[Windows][GCC 12.2.0][64 bit] 8bit+10bit+12bit
Language : English
Default : Yes
Forced : No
Color range : Limited
Color primaries : BT.709
colour_primaries_Original : BT.601 PAL
Transfer characteristics : BT.709
transfer_characteristics_Origi : BT.470 System B/G
Matrix coefficients : BT.709
matrix_coefficients_Original : BT.470 System B/G
VENDOR_ID : [0][0][0][0]
Audio
ID : 2
Format : Vorbis
Format settings, Floor : 1
Codec ID : A_VORBIS
Duration : 10 min 7 s
Bit rate mode : Variable
Bit rate : 64.0 kb/s
Channel(s) : 2 channels
Sampling rate : 44.1 kHz
Compression mode : Lossy
Delay relative to video : -3 ms
Stream size : 4.63 MiB (7%)
Title : SoundHandle
Writing application : Lavc60.3.100
Writing library : libVorbis (Reducing Environment) (20200704 (Reducing Environment))
Language : English
Default : Yes
Forced : No
VENDOR_ID : [0][0][0][0]
我想到有些视频不需要用很高的色彩,毕竟根据图片压缩经验从24位色彩降低到265色的话文件大小立即变小,当然我没在ffmpeg文档中找到很激进的色彩设置,所以降低色彩参数用的是bt470bg或m,但这样压缩后视频文件大小未被压缩,画面有一点点细微差异总之非特定情况下无法察觉。主要是围绕colorprim=bt470bg:transfer=bt470bg:colormatrix=bt470bg这仨参数,我分别在libx264 libx265编码器都试过,用colorspace滤镜也试过,都无法进一步压缩文件大小。
我在libx265-params里加入这些参数定义 colorprim=bt470bg:transfer=bt470bg:colormatrix=bt470bg 也能生效,但很奇怪用PotPlayer看属性 视频metadata的 colour_primaries_Original 和 colour_primaries参数成对出现,用ffprobe -v error -show_streams倒是看不出来异常,但是看文件属性中的压缩比 Bits/(Pixel*Frame) : 0.029 ,我理解这个值达到0.016附近会比较好。
另外,我也发现从metadata来看我的压缩过程不规范。
General
Unique ID : 17736959944534812119367205992777565793 (0xD5803A47184D2586A6B96A3AFE2C661)
Complete name : F:\导出\VID_20250131_194029装饰灯光color_bt470bg vorbis_scale0_compress7_voip_cutoff0.mkv
Format : Matroska
Format version : Version 4
File size : 62.0 MiB
Duration : 10 min 7 s
Overall bit rate mode : Variable
Overall bit rate : 856 kb/s
Frame rate : 29.417 FPS
Writing application : Lavf60.3.100
Writing library : Lavf60.3.100
ErrorDetectionType : Per level 1
COM.ANDROID.VERSION : 10
Video
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main@L3.1@Main
Codec ID : V_MPEGH/ISO/HEVC
Duration : 10 min 7 s
Bit rate : 775 kb/s
Width : 720 pixels
Height : 1 280 pixels
Display aspect ratio : 0.562
Frame rate mode : Constant
Frame rate : 29.417 FPS
Color space : YUV
Chroma subsampling : 4:2:0 (Type 0)
Bit depth : 8 bits
Bits/(Pixel*Frame) : 0.029
Stream size : 56.1 MiB (91%)
Title : VideoHandle
Writing library : x265 3.5+96-9c9ab68fc:[Windows][GCC 12.2.0][64 bit] 8bit+10bit+12bit
Language : English
Default : Yes
Forced : No
Color range : Limited
Color primaries : BT.709
colour_primaries_Original : BT.601 PAL
Transfer characteristics : BT.709
transfer_characteristics_Origi : BT.470 System B/G
Matrix coefficients : BT.709
matrix_coefficients_Original : BT.470 System B/G
VENDOR_ID : [0][0][0][0]
Audio
ID : 2
Format : Vorbis
Format settings, Floor : 1
Codec ID : A_VORBIS
Duration : 10 min 7 s
Bit rate mode : Variable
Bit rate : 64.0 kb/s
Channel(s) : 2 channels
Sampling rate : 44.1 kHz
Compression mode : Lossy
Delay relative to video : -3 ms
Stream size : 4.63 MiB (7%)
Title : SoundHandle
Writing application : Lavc60.3.100
Writing library : libVorbis (Reducing Environment) (20200704 (Reducing Environment))
Language : English
Default : Yes
Forced : No
VENDOR_ID : [0][0][0][0]