ffdshow + 곰플 조합보단 smplayer 사용을 추천합니다.
아니 곰플은 그냥 버립시다.

** luminance, level fix 등의 색감 보정은 이제 지포스 제어판 > 비디오 컬러 설정 조정에서
동적 범위를 0-255로 변경하면 됨. ffdshow에서 할 필요 없음. ** (2015년)
(ffdshow에서 할 수밖에 없었던 시절이 있었죠...)
(ffdshow를 쓰지 않고 컬러 스페이스 교정을 하려면 곰플레이어의
출력 포맷을 RGB로 해야 하는데 시스템 자원을 많이 소모한다.)
 ㄴ 최종 출력은 어차피 RGB로 변환되어 이루어지는 것. 고품질 RGB일 때가 심한 자원 소모. (2015. 8)


ffmpeg 기반의 directshow 필터.
원조는 ffmpeg이며 윈도즈에 특성화하여
directshow를 끼얹은 게 ffdshow라고 보면 된다.

directshow에선 디코더(코덱)와 렌더러를 합쳐 필터라고 부른다.

게임 : directX
동영상 & 멀티미디어 : directshow
   ㄴ 역시 윈도즈에선 MS의 가호 아래에 있는 게 최고다(...)

libavcodec 코덱은 ffmpeg의 핵심으로 libmad니 liba52 같은 개별적인 코덱들을
모두 지원하는 통합 코덱이다. 다들 GPL이기에 사용을 허락해주는 것 같다.
ffmpeg 개발자 대부분이 mplayer 프로젝트에도 참여하고 있기에 mplayer에는
당연히 libavcodec가 심어졌다.
libavcodec은 최근엔 h.264 재생을 위해 ffmpeg-mt도
포함하기 시작했다.


팟플, 곰플, KMP 등 통합형 코덱 내장 동영상 재생기들은 죄다 이 mplayer를
모방하여 ffdshow 소스를 베껴다 쓴 아류다.
(세계를 주름잡는 ffmpeg!)

h.264, avc 재생에 coreavc를 크랙해서 많이 쓰고 있지만 결국 ffmpeg-mt 세상이
(혹은 libavcodec 세상이) 올 듯싶다. dxva는 아주 예전의 mpeg1 하드웨어
가속처럼
시간이 지나면 사라질 거라 예상한다.
하드웨어 가속답게 유연함과 호환성이 떨어지기
때문이다.


ffdshow에 물릴 동영상 재생기는 취향대로 고르면 된다. 팟플, 곰플,
윈도즈 미디어 플레이어, 미디어 플레이어 클래식 등 모두
가능하며
그중
자막 렌더러가 없는 윈도즈 미플에 특히 유용하다. 그런데
한영통합 자막을 처리하
려면 곰플 같은 국산 재생기가 또 있긴 있어야 한다(...)

동영상 재생기의 기능이라고 여기기 쉬운 자막이나 사운드 설정 같은 기능들도
실은
모두 ffdshow의 필터다(...)


<< 설정 >>
ffdshow tryouts 설치 후
[ ffdshow video decoder configuration ]
1) Codecs
H.264/AVC > ffmpeg-mt(libavcodec도 상관없다). deblocking 필터 skip은 선택하지 않는다.
WMV1/7, WMV2/8, WMV3/9의 디코더 선택 > libavcodec
VC-1 > libavcodec
DV > libavcodec
Raw video > all supported
FPEG1, FPEG2의 코덱 선택 > libavcodec(libmpeg2 아님). DVD decoding 옵션 선택.

곰플레이어 설치 시 필수코덱이라고 하는 libmpeg2하고 또 다른 코덱 하나는 깔지 말자.

전부 ffdshow에서 지원할 수 있다.
그밖의 다른 코덱도 필요하면 활성화한다.
CoreAVC 코덱을 HD급 파일 재생에 이용할 때는 ffdshow에서 h264/avc 코덱은 선택하지 않는다

DXVA 가속을 쓰려면 ffdshow video decoder configuration가 아닌 DXVA video decoder
configuration를
실행하여 Hardware acceleration > DXVA codecs enabled에서 H264와 VC1를
선택한다. 자막을 보려면
아래의 Post processing에서 Surface overlay를 선택해야 하는데
버그가 있는지 .smi 자막은 조금씩
뒤로 밀려나는 현상이 나타난다.
(그래서 dxva는 쓰지 않고 있다. - 2010-12-31)


2) DirectShow control
ffdshow를 사용할 프로그램 지정. Don't use와 Use only를 둘 다 선택.
show dialog 어쩌고는 선택 안 함.

3) Profiles/Preset settings
동영상 부류에 따라 여러 설정 자동 지정.
Preset을 만들고 Preset autoload conditions에서 조건 지정.

Automatic preset loading 옵션 선택.

dvd를 재생하려면 디인터레이싱이 필요할 때가 있다. 인터레이싱이 발생하는
타이틀을 볼 때는 디인터레이싱 필터를 켜고 보자.

hd급 동영상을 고르는 조건은 on FOURCC match : H264;WMV3;AVC1이다.
동영상 재생 중에도 트레이의 ffdshow 아이콘으로 프로파일과 필터를 변경할 수 있다.

참고 : http://dicer.tistory.com/entry/ffdshow-%EC%9E%90%EB%8F%99-%ED%94%84%EB%A1%9C%ED%95%84-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

4) Postprocessing (luminance 수정은 여기서 한다)
Presets를 선택하고 막대기를 제일 오른쪽으로. Automatic quality control도 선택.
Processing method :
   mplayer 선택.
   Level fix : Luminance, Full luma range 체크
.

5) Levels (Postprocessing의 Level fix를 사용할 것)

참고 : http://www.codecguide.com/faq_display_issues.htm
http://blog.naver.com/PostList.nhn?blogId=jongsbee&categoryNo=26

** 라데온,  지포스 그래픽 드라이버에서 비디오 > 고급 색상 > 동적 범위(Luminance) 옵션을

쓰면 간편하다. ffdshow에서 손댈 필요 없음.


*** 다만 어떤 이유로든, 2015년 현재 퇴출된 XP 등의 구형 OS와 구버전 그래픽 드라이버를

써야 해서 그래픽 드라이버에서 동영상의 컬러 범위를 설정할 수 없는 상황이라면

ffdshow의 레벨 필터가 유용할 것이다. 바꿔 말하면 ffdshow의 필터들은 XP 시절에

굉장히 유용했다는 얘기. (심지어 smplayer도 레벨 조절 기능이 없어서 불편하던 시절이었음)


DXVA 하드웨어 가속으로 재생할 때나 윈도즈 미디어 플레이어로 재생할 때만
적용되고
ffdshow를 쓸 때는 상관 없는 것같다.
(출력 방식을 EVR 이상으로 할 때만 효과가 있기 때문이다)

동적 범위 옵션이 일반적인 경우에 작동하지 않는 게 ATi 카탈리스트 10.12의
버그일지도
모르지만 luminance 수정이 필요하면 어차피
ffdshow가 조절하므로
별 상관은 없을 것같다.

(ffdshow에서 레벨을 수정하면 overlay를 쓰든 VMR을 쓰든 상관없으므로)

7) Output
Planar YUV : YV12 해제. YV12는 일부 동영상에서 호환성 문제를 일으킨다.

 ㄴ 아니다. 문제가 있다면 그건 곰플 탓.

High quality YV12 to RGB conversion을 켜면 더 정확한 화질(엄밀하게는 색감)을
제공받으므로 비디오 레벨(luminance) 문제가 해결됨.

  ㄴ 그게 아니고 아래에 나오는 output levels를 Computer monitor로 지정하기에 그런 것임


CPU 사용량은 당연히 올라감. KMP, 팟플 등의 고화질 설정이 바로 이것이다.

level 필터를 사용하면 되므로 (또는 2014년 이후 그래픽 카드 드라이버 설정에서

동영상 컬러의 동적 범위를 0-255로 설정하면 됨)

무리해서 '고화질' RGB 변환을 쓸 필요는 없다.

그리고 고화질을 떼고 봐도 일단 모든 동영상 재생에는 최종 단계에서 YUV > RGB 변환이

되는 것을 확인할 수 있다. 고화질이냐 다른 것이냐의 차이일 뿐.

smplayer 14.9의 경우

[swscaler @ 000000000254d9c0]bicubic scaler, from yuv420p to rgb24 using MMXEXT
[swscaler @ 000000000254d9c0]using unscaled yuv420p -> rgb24 special converter
VO: [directx] 1280x720 => 1280x720 Planar YV12

yuv 4:2:0 - RGB24 방식의 변환을 거치며 출력은 당연히 쌈마이한 YV12(...)

High quality YUV > RGB 변환은 대략 JPG > BMP, MP3 > WAV 변환과 비슷하다고 보면 될 듯.

  ㄴ 무지막지한 처리 용량의 증가(...)

High quality RGB 사용 시
RGB conversion에서 역시 output levels를 Computer monitor로. (??!)

  ㄴ 그래픽 카드에서 동영상 컬러 동적 범위를 0-255로 확대했을 땐 중복해서

       할 필요가 없을 것이다.

       ㄴ 정말인지는 확인을 해야 하는데 2015년 요즘 ffdshow는 쓰고 있질 않기에(...)

8) Subtitles
한영 통합 자막 때문에 그냥 곰플레이어의 내장 코덱을 쓰는 게 귀찮지 않다.
ffdshow의 자막 기능을 끄고 곰플레이어의 환경 설정 > 필터 > 필터 차단에서
빠른 재생 모드 활성화도 다시 끈다.

곰플레이어의 자막은 줄간 여백이 제대로 조절되지 않는 버그가 있다. (2010-12-31)
그림자 깊이를 2로 해야 하고 여백 조절도 불규칙하게 적용된다.

[[ 다른 이유로 꼭 ffdshow의 자막 필터를 쓰려 한다면 ]]
Placement : 가로 50%, 세로 90%
Font :
   Font = 은 돋음, Spacing = 2, Weight = 노말
   Body = 35, Outline = 1(Alpha = 최대값:기본으로 되어 있음), Shadow = 1(기본 Alpha값)
   Shadow mode = Gradient shadow

9) Deinterlacing
Method : Yet Another Deinterlacing. 인터레이싱이 나타나는 DVD 재생 때만 켜도록 하자.
Preset autoload conditions에서 on decoder match : O, "mpeg2video" 디코더 선택.

곰플레이어 > 영상 > 영상 효과에서는 "디인터레이스 : 영상에 디인터레이스 적용 안함".

[ ffdshow audio decoder configuration ]
1) Codecs
AC3의 디코더 지정. (liba52)
WMA 7 > libavcodec
Uncompressed의 디코더 > all supported

그외에 필요한 코덱을 선택한다.

2) DirectShow control
비디오 디코더와 동일.

3) Profiles/Preset settings
Decoder options에서 dynamic range compression 선택. 100%

DRC는 야간 또는 실외 등의 특정 상황에서 가청성을 향상시키지만

결과적으론 원음을 왜곡시킬 수밖에 없다.


4) Volume
Normalize 선택.
노멀라이즈는 끄고 볼륨 증폭 사용.
Max. amplification : 300%까지.
모자르면 더 올림.

믹서의 소리 조절 상한선을 올리는 셈이다.

5) Mixer

ffdshow tryouts 설치 후반부의 스피커 세팅이 바로 이 것.
Gretech Audio 필더가 무조건 사용되는 건 어쩔 수 없다.

-- 곰플레이어 환경 설정 --
0) 재생
재생 > 재생 설정 > 작업 쓰레드를 이용하여 파일 열기 (블럭킹 현상 제거)
재생 > 화면 크기 > 매일 한번씩 곰TV 자동 열기 : X

1) 자막
이미지 자체에 표시, 글꼴 : 은 돋움, 글자 크기 : 22
윤곽선 두께 : 1.4. 그림자 깊이 : 2, 세로 위치 : 85, 줄간 여백 : 6

2) 영상
영상 > 출력 방식 : overlay
영상 효과 > 블럭 제거 : X, 디인터레이스 : X

영상 출력 > 컬러 스페이스 - 포맷 설정 : 그냥 기본값인 YUY2.
이도 저도 다 귀찮고 가진 건 빠방한(정말로) 사양뿐이라면 RGB32.

 ㄴ 일반 RGB 출력보다 더 고화질 모드.(바로 ffdshow에서 High quality YV12 to RGB conversion임)

3) 소리
노멀라이저 사용하기 X
증폭 허용 X

4) 필터
소스 필터 > 소스 필터 사용 여부 : Flash Video 빼고 모두 해제.
mp4와 mkv 재생은 haali splitter가 좋다고 하니 깔아주자.
haali splitter가 있으면 .flv 외엔
내부 소스 필터가 필요없을 것이다.
Mpeg Transfort Stream 포맷 재생 : 외부 소스 필터를 사용하여 재생.

코덱 > 지원가능한 코덱 형식 : 모두 해제.
고급 설정 > 필터 랜더링 방식 : 고급 랜더링 방식.

고급 설정 > 필터 우선 순위 설정 :
CoreAVC Video Decoder (00800200) : CoreAVC를 안 쓴다면 필요없다.
ffdshow Video Decoder (00800100)
ffdshow Audio Decoder (00800099)
MPEG Video Decoder (사용 안함)
Gretech Audio Filter (사용 안함)
Gretech Video Filter (사용 안함)


Posted by 猫한 보스코
,