안녕하세요? 샤나인코더 사이트의 글을 보고 AV1 으로 인코딩을 해보려고 합니다.
https://shana.pe.kr/shanaencoder_tip/56967
AV1 코덱은 압축률이 매우 상당하다고 하는데요. 이걸 저희가 보는 영상으로 인코딩 해야 참맛이지 않겠습니까? ㅎㅎ 처음에는 야동으로 할까 하다가 참았습니다.
갑니다.
1. 필요한 바이너리 받기 및 배치
1. ffmpeg
https://ffmpeg.zeranoe.com/builds/
2. rav1e
https://github.com/xiph/rav1e/releases
상기 두 파일을 원하는 위치에 넣어줍니다. 아래와 같이 말이죠 ㅎㅎ
그리고 넣어준 경로에 PATH 를 추가합니다. (환경변수)
2. 에이핑크 4K VP9 영상
655메가 파일입니다.
3. 전체적인 인코딩 과정
정확하게 인코딩에 대해서 잘 모르기 때문에 과정을 아래와 같이 압축해 보았습니다.
1. FFMPEG 로 y4m 생성
2. rav1e 로 ivf 생성
3. FFMPEG 로 mp4 생성 (오디오 짬뽕)
4. FFMPEG 로 y4m 파일 생성 과정
대략적으로 0.2 배속 (초당 9.4프레임)으로 인코딩 됩니다 ㄷㄷ.. ㅠㅠ
PS C:\users\user\Downloads> ffmpeg -i .\apink4k.mkv -y output.y4m
ffmpeg version N-93589-ge2f766e13f Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8.3.1 (GCC) 20190414
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil 56. 26.100 / 56. 26.100
libavcodec 58. 51.100 / 58. 51.100
libavformat 58. 27.102 / 58. 27.102
libavdevice 58. 7.100 / 58. 7.100
libavfilter 7. 48.100 / 7. 48.100
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
Input #0, matroska,webm, from '.\apink4k.mkv':
Metadata:
ENCODER : Lavf56.1.0
Duration: 00:03:33.17, start: 0.000000, bitrate: 25775 kb/s
Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, bt709/unknown/unknown), 3840x2160, SAR 1:1 DAR 16:9, 59.94 fps, 59.94 tbr, 1k tbn, 1k tbc (default)
Stream #0:1(und): Audio: aac (LC), 44100 Hz, stereo, fltp (default)
Metadata:
CREATION_TIME : 2015-04-05 09:01:29
LANGUAGE : und
Stream mapping:
Stream #0:0 -> #0:0 (vp9 (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
Output #0, yuv4mpegpipe, to 'output.y4m':
Metadata:
encoder : Lavf58.27.102
Stream #0:0(eng): Video: wrapped_avframe, yuv420p, 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 59.94 fps, 59.94 tbn, 59.94 tbc (default)
Metadata:
LANGUAGE : eng
encoder : Lavc58.51.100 wrapped_avframe
frame= 164 fps= 27 q=-0.0 size= 1992448kB time=00:00:02.73 bitrate=5965546.2kbits/s speed=0.456x
죽어 나가지는 않네요..
중간에 용량 부족으로.. ㅠㅠ 대략 170기가 여유 공간이 있어야 하네요 ㅎㅎ
처음부터 다시 합니다 ㅋㅋ
av_interleaved_write_frame(): No space left on device:40.87 bitrate=5965986.7kbits/s speed=0.149x
Error writing trailer of output.y4m: No space left on device
frame= 2451 fps=8.9 q=-0.0 Lsize=29776128kB time=00:00:40.89 bitrate=5965296.4kbits/s speed=0.149x
video:1283kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2320819.500000%
Conversion failed!
PS C:\users\user\Downloads> ffmpeg -i .\apink4k.mkv -y d:\output.y4m
ffmpeg version N-93589-ge2f766e13f Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8.3.1 (GCC) 20190414
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil 56. 26.100 / 56. 26.100
libavcodec 58. 51.100 / 58. 51.100
libavformat 58. 27.102 / 58. 27.102
libavdevice 58. 7.100 / 58. 7.100
libavfilter 7. 48.100 / 7. 48.100
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
Input #0, matroska,webm, from '.\apink4k.mkv':
Metadata:
ENCODER : Lavf56.1.0
Duration: 00:03:33.17, start: 0.000000, bitrate: 25775 kb/s
Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, bt709/unknown/unknown), 3840x2160, SAR 1:1 DAR 16:9, 59.94 fps, 59.94 tbr, 1k tbn, 1k tbc (default)
Stream #0:1(und): Audio: aac (LC), 44100 Hz, stereo, fltp (default)
Metadata:
CREATION_TIME : 2015-04-05 09:01:29
LANGUAGE : und
Stream mapping:
Stream #0:0 -> #0:0 (vp9 (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
Output #0, yuv4mpegpipe, to 'd:\output.y4m':
Metadata:
encoder : Lavf58.27.102
Stream #0:0(eng): Video: wrapped_avframe, yuv420p, 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 59.94 fps, 59.94 tbn, 59.94 tbc (default)
Metadata:
LANGUAGE : eng
encoder : Lavc58.51.100 wrapped_avframe
frame= 4684 fps=7.4 q=-0.0 size=56910592kB time=00:01:18.14 bitrate=5966001.2kbits/s speed=0.124x
결과 148기가 파일이 생성되었습니다.
5. rav1e 로 ivf 파일 생성
PS C:\users\user\Downloads> rav1e D:\output.y4m --output "D:\apink4k_rav1e.q170.s3.ivf" --quantizer 170 --speed 3
3840x2160 @ 60000/1001 fps
으잉? 상기 명령으로 1KB 파일만 생성되어 방향을 다시 틀어서 libaom 으로 시도합니다.
6. FFMPEG libaom-av1
PS C:\users\user\Downloads> ffmpeg -ss 00:00:25 -i .\apink4k.mkv -t 5 -c:v libaom-av1 -cpu-used 2 -minrate 500k -b:v 2000k -maxrate 2500k -strict experimental -c:a copy out.mp4
ffmpeg version N-93589-ge2f766e13f Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8.3.1 (GCC) 20190414
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil 56. 26.100 / 56. 26.100
libavcodec 58. 51.100 / 58. 51.100
libavformat 58. 27.102 / 58. 27.102
libavdevice 58. 7.100 / 58. 7.100
libavfilter 7. 48.100 / 7. 48.100
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
Input #0, matroska,webm, from '.\apink4k.mkv':
Metadata:
ENCODER : Lavf56.1.0
Duration: 00:03:33.17, start: 0.000000, bitrate: 25775 kb/s
Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, bt709/unknown/unknown), 3840x2160, SAR 1:1 DAR 16:9, 59.94 fps, 59.94 tbr, 1k tbn, 1k tbc (default)
Stream #0:1(und): Audio: aac (LC), 44100 Hz, stereo, fltp (default)
Metadata:
CREATION_TIME : 2015-04-05 09:01:29
LANGUAGE : und
File 'out.mp4' already exists. Overwrite ? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (vp9 (native) -> av1 (libaom-av1))
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[libaom-av1 @ 000001676e005940] 1.0.0-1605-g64a2ffb72
Output #0, mp4, to 'out.mp4':
Metadata:
encoder : Lavf58.27.102
Stream #0:0(eng): Video: av1 (libaom-av1) (av01 / 0x31307661), yuv420p, 3840x2160 [SAR 1:1 DAR 16:9], q=-1--1, 2000 kb/s, 59.94 fps, 60k tbn, 59.94 tbc (default)
Metadata:
LANGUAGE : eng
encoder : Lavc58.51.100 libaom-av1
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp (default)
Metadata:
CREATION_TIME : 2015-04-05 09:01:29
LANGUAGE : und
frame= 300 fps=0.0 q=0.0 Lsize= 1337kB time=00:00:04.99 bitrate=2190.6kbits/s speed=0.000384x
video:1232kB audio:96kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.620153%
테스트로 5초 인코딩 하는데 시간이 어마어마 하게 걸립니다. 대략 6시간 걸린것 같습니다...
파일은 아래에 추가해 두었고 무언가 이상합니다. ㅠㅠ
다음 기회에 다시 시도해 봐야겠습니다.
'컴퓨터.전자기기' 카테고리의 다른 글
[일단 실패]NVIDIA Jetson TX2 운영체제 설치하기 (JetPack4.2) (6) | 2019.05.03 |
---|---|
NVIDIA Jetson TX2 개봉기 (0) | 2019.04.26 |
GTX 1060 6GB 늦은 영입 후기 (0) | 2019.04.17 |
차이코스 슬림 (HiTaste P5) 사용기 (대리 리뷰) (0) | 2019.04.04 |
샤오미 미드론 4K 뒤늦은 구매후기 (0) | 2019.04.03 |
댓글