안녕하세요
여러 동영상의 용량을 줄이던 중 눈이나 비가 내리는 동영상에서 막히게 되었습니다.
gif 는 비가 내리는 동영상의 캡쳐고,
눈이 내리는 동영상은 1(원본cut), 2(압축), 3(MBtree 끈 압축) 세 가지입니다.
원본은 1920x1080 에 17 Mbps 정도인데 너무 큰 거 같아서 평소 하던대로
ref=4 bframes=16 keyint=250 mbtree=1 bitrate=11000 aq=1:0.00
https://www.youtube.com/watch?v=BtYKDamqo2I
아래는 파일정보, 인코딩기록입니다.
1) snow 동영상 파일정보
------------------------------------------------------------------------
Format : MPEG-4
Format profile : Base Media / Version 2
Codec ID : mp42 (isom/mp42)
File size : 53.9 MiB
Duration : 26 s 119 ms
Overall bit rate : 17.3 Mb/s
com.android.version : 9
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4
Format settings : CABAC / 1 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 1 frame
Format settings, GOP : M=1, N=30
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 26 s 119 ms
Bit rate : 17.0 Mb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 30.000 FPS
Minimum frame rate : 18.237 FPS
Maximum frame rate : 35.433 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.274
Stream size : 53.1 MiB (98%)
Title : VideoHandle
Codec configuration box : avcC
자세한 정보
General
Count : 333
Count of stream of this kind : 1
Kind of stream : General
Stream identifier : 0
Count of video streams : 1
Video_Format_List : AVC
Video_Format_WithHint_List : AVC
Codecs Video : AVC
File extension : mp4
Format : MPEG-4
Format/Extensions usually used : braw mov mp4 m4v m4a m4b m4p m4r 3ga 3gpa 3gpp 3gp 3gpp2 3g2 k3g jpm jpx mqv ismv isma ismt f4a f4b f4v
Commercial name : MPEG-4
Format profile : Base Media / Version 2
Internet media type : video/mp4
Codec ID : mp42 (isom/mp42)
Codec ID/Url : http://www.apple.com/quicktime/download/standalone.html
CodecID_Compatible : isom/mp42
File size : 56526856
File size : 53.91 MiB
Duration : 26119
Duration : 26 s 119 ms
Duration : 00:00:26.119 (00:00:26:04)
Overall bit rate : 17313636
Overall bit rate : 17.3 Mb/s
Frame rate : 30.000 FPS
Frame count : 784
Stream size : 15475
Stream size : 15.11 KiB
Proportion of this stream : 0.00027
HeaderSize : 24
DataSize : 56511389
FooterSize : 15443
IsStreamable : No
xyz : +00.0000+000.0000/
com.android.version : 9
Video
Count : 378
Count of stream of this kind : 1
Kind of stream : Video
Stream identifier : 0
StreamOrder : 0
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format/Url : http://developers.videolan.org/x264.html
Commercial name : AVC
Format profile : High@L4
Format settings : CABAC / 1 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 1 frame
Format settings, GOP : M=1, N=30
Internet media type : video/H264
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 26119
Duration : 26 s 119 ms
Duration : 00:00:26.119 (00:00:26:04)
Bit rate : 17043820
Bit rate : 17.0 Mb/s
Width : 1 920 pixels
Height : 1 080 pixels
Stored_Height : 1088
Sampled_Width : 1920
Sampled_Height : 1080
Pixel aspect ratio : 1.000
Display aspect ratio : 1.778
Display aspect ratio : 16:9
Rotation : 0.000
Frame rate mode : VFR
Frame rate mode : Variable
Frame rate : 30.000 FPS
Minimum frame rate : 18.237 FPS
Maximum frame rate : 35.433 FPS
Frame count : 784
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.274
Stream size : 55676479
Stream size : 53.10 MiB
Proportion of this stream : 0.98496
Title : VideoHandle
Codec configuration box : avcC
MediaInfoLib - v19.09
---------------------------------------------------------------------------
2) snow 압축 인코딩기록
==================================================
>> 작업 시작시간: 2020-12-30 오전 11:16:25
* 인코딩 시작: snow.mp4
Using -vsync 0 and -r can produce invalid output files
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
[libx264 @ 000002cab352ef80] using SAR=1/1
[libx264 @ 000002cab352ef80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 000002cab352ef80] profile High, level 4.0, 4:2:0, 8-bit
[libx264 @ 000002cab352ef80] 264 - core 161 r3015 4c2aafd - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=4 deblock=1:0:0 analyse=0x3:0x133 me=umh subme=9 psy=0 mixed_ref=1 me_range=24 chroma_me=1 trellis=2 8x8dct=1 cqm=1 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=16 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=1 weightp=2 keyint=250 keyint_min=25 scenecut=80 intra_refresh=0 rc_lookahead=250 rc=2pass mbtree=1 bitrate=11000 ratetol=1.0 qcomp=0.00 qpmin=1 qpmax=69 qpstep=65 cplxblur=0.0 qblur=0.0 ip_ratio=0.70 aq=1:0.00
Side data:
cpb: bitrate max/min/avg: 0/0/11000000 buffer size: 0 vbv_delay: N/A
video:2940kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.054076%
[libx264 @ 000002cab352ef80] frame I:1 Avg QP:33.70 size:156888
[libx264 @ 000002cab352ef80] frame P:14 Avg QP:30.06 size:127308
[libx264 @ 000002cab352ef80] frame B:45 Avg QP:37.18 size: 23793
[libx264 @ 000002cab352ef80] consecutive B-frames: 1.7% 0.0% 5.0% 60.0% 33.3% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0%
[libx264 @ 000002cab352ef80] mb I I16..4: 18.6% 54.5% 26.9%
[libx264 @ 000002cab352ef80] mb P I16..4: 5.0% 9.5% 5.5% P16..4: 36.4% 18.9% 11.3% 2.1% 0.2% skip:11.0%
[libx264 @ 000002cab352ef80] mb B I16..4: 0.3% 0.4% 0.3% B16..8: 33.9% 9.9% 2.0% direct: 2.5% skip:50.7% L0:51.6% L1:28.1% BI:20.3%
[libx264 @ 000002cab352ef80] 8x8 transform intra:47.9% inter:34.6%
[libx264 @ 000002cab352ef80] direct mvs spatial:100.0% temporal:0.0%
[libx264 @ 000002cab352ef80] coded y,uvDC,uvAC intra: 73.1% 36.2% 3.8% inter: 21.4% 2.6% 0.1%
[libx264 @ 000002cab352ef80] i16 v,h,dc,p: 15% 31% 33% 20%
[libx264 @ 000002cab352ef80] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 13% 21% 21% 6% 7% 5% 7% 7% 12%
[libx264 @ 000002cab352ef80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 25% 15% 6% 8% 5% 9% 6% 12%
[libx264 @ 000002cab352ef80] i8c dc,h,v,p: 76% 15% 6% 3%
[libx264 @ 000002cab352ef80] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 000002cab352ef80] ref P L0: 72.4% 3.3% 15.3% 9.0%
[libx264 @ 000002cab352ef80] ref B L0: 96.8% 2.5% 0.7%
[libx264 @ 000002cab352ef80] ref B L1: 99.3% 0.7%
[libx264 @ 000002cab352ef80] kb/s:11842.17
* 인코딩이 완료되었습니다.
>> 속도 0.15x 진행시간 00:00:13
==================================================
3) MBtree 끈 압축 인코딩기록
==================================================
>> 작업 시작시간: 2020-12-30 오전 11:40:41
* 인코딩 시작: snow.mp4
Using -vsync 0 and -r can produce invalid output files
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
[libx264 @ 000001f8eca4ef40] using SAR=1/1
[libx264 @ 000001f8eca4ef40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 000001f8eca4ef40] profile High, level 4.0, 4:2:0, 8-bit
[libx264 @ 000001f8eca4ef40] 264 - core 161 r3015 4c2aafd - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=1 deblock=1:0:0 analyse=0x3:0x133 me=umh subme=9 psy=0 mixed_ref=0 me_range=24 chroma_me=1 trellis=2 8x8dct=1 cqm=1 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=2 keyint=30 keyint_min=3 scenecut=80 intra_refresh=0 rc=2pass mbtree=0 bitrate=11000 ratetol=1.0 qcomp=0.00 qpmin=1 qpmax=69 qpstep=65 cplxblur=0.0 qblur=0.0 ip_ratio=0.70 aq=0
Side data:
cpb: bitrate max/min/avg: 0/0/11000000 buffer size: 0 vbv_delay: N/A
video:2697kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.042083%
[libx264 @ 000001f8eca4ef40] frame I:3 Avg QP:37.67 size: 87539
[libx264 @ 000001f8eca4ef40] frame P:57 Avg QP:34.63 size: 43824
[libx264 @ 000001f8eca4ef40] mb I I16..4: 24.6% 63.1% 12.3%
[libx264 @ 000001f8eca4ef40] mb P I16..4: 2.9% 1.3% 1.5% P16..4: 46.3% 9.9% 3.0% 0.4% 0.0% skip:34.5%
[libx264 @ 000001f8eca4ef40] 8x8 transform intra:41.8% inter:34.2%
[libx264 @ 000001f8eca4ef40] coded y,uvDC,uvAC intra: 57.2% 35.7% 1.2% inter: 29.6% 1.5% 0.0%
[libx264 @ 000001f8eca4ef40] i16 v,h,dc,p: 19% 32% 27% 22%
[libx264 @ 000001f8eca4ef40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 26% 19% 5% 5% 5% 7% 6% 11%
[libx264 @ 000001f8eca4ef40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 14% 23% 16% 6% 8% 6% 9% 6% 12%
[libx264 @ 000001f8eca4ef40] i8c dc,h,v,p: 86% 9% 3% 1%
[libx264 @ 000001f8eca4ef40] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 000001f8eca4ef40] kb/s:10861.36
* 인코딩이 완료되었습니다.
>> 속도 0.245x 진행시간 00:00:08
==================================================
눈이나 비가 내리는 영상처럼 프레임별 변화가 많은 영상의 경우 프레임 간에 독립성이 크므로 ref나 B 프레임 숫자를 줄이는 게 좋습니다. 그리고 '키 프레임 변경' 옵션으로 GOP 사이즈를 좀 줄여보시구요. (샤나인코더 빠른 설정 안의 옵션에서는 '초' 단위로 설정합니다.)
추가적으로 Motion Estimation 쪽을 hex보다는 umh 쪽으로 시도해 보시구요.
또한 비트레이트가 커지더라도 노이즈를 최대한 살리는 방향으로 가는 게 좋습니다.
필터를 따로 쓰지 않더라도 인코더 자체적으로는 인코더의 in-loop deblocking 관련 고유 옵션들에 낮은 값(주로 음수)을 주거나 해당 옵션을 끈다든지 하는 게 좋겠군요.
x264의 경우 deblock, x265의 경우 deblock, sao, strong-intra-smoothing 같은 옵션들을 적절하게 설정해보는 게 좋을 겁니다. (방법은 검색)
MBtree 경우, 프레임 간 정보 의존도가 높을 경우 효과가 크므로 이 경우엔 꺼주는 게 나을지도 모르겠군요.
그리고 원본에 따라 프레임 내 정보 격차가 크지 않을 경우 - 밝기 차이가 많이 안 난다든지, 복잡도(평평한 정도)가 별 차이 안 난다든지 등등 - AQ를 끄거나 관련 옵션에 낮은 값을 주는 게 나을지도 모르겠습니다.
마지막으로, 굳이 용량 제한을 둘 필요가 있지 않다면 비트레이트 모드보다는 퀄리티 모드를 추천합니다. 거의 대부분의 경우 퀄리티 모드가 비트레이트 모드(1패스)보다는 화질면에서 우월합니다.