2017-03-18 11 views
0

FFmpeg로 GIF 파일의 팔레트를 추출하고 filter "showpalette"이 할 수있는 문서에서 배웠습니다. 그러나 FFmpeg는 항상 사용자 정의 팔레트 대신 동일한 기본 팔레트를 반환합니다.FFmpeg의 필터 "showpalette"는 항상 기본 팔레트를 반환합니다.

default palette

이는 FFmpeg도 pkh.me's Post의 두 예제에 대해 같은 팔레트를 반환합니다. 내 코드는 다음과 같습니다.

ffmpeg -i bbb-trans.gif -vf "showpalette" -y a%03d.png 
ffmpeg -i bbb-nodither.gif -vf "showpalette" -y b%03d.png 

잘못된 명령을 사용 했습니까? 아니면 FFmpeg의 버그 일뿐입니다.

답변

1

showpalette에 대한 문서에서 "이 필터는 pal8 픽셀 형식 프레임"과 관련이 있습니다. 테스트 GIF는 풀 RGB입니다.

당신은 여전히 ​​실행할 수 있습니다

ffmpeg -i in.gif -vf palettegen=stats_mode=single,scale=30*iw:-1:flags=neighbor a%d.png 
당신은 여전히 ​​pal8 GIF를 여기
+0

감사! 귀하의 명령을 시도하고 특정 색상 또는 사용자 정의 팔레트를 반환합니다. 또한 GIF를 pal8'ffmpeg -i bbb-nodither.gif -pix_fmt pal8 -y pal8.gif'로 변환하려고 시도했지만 여전히 두 입력 GIF 모두에 대해 동일한 기본 팔레트를 사용했습니다. 왜 그런지 알아? – Vej

+0

입력 GIF가 RGB 인 경우 GIF에 팔레트가 포함되어 있지 않으므로 표시 할 사용자 정의 팔레트가 없습니다. 따라서 기본 팔레트를 보여줍니다. 팔레트 생성기를 실행하지 않고 pal8로 변환하면 다시 기본 팔레트가 사용되므로 표시됩니다. – Mulvya

+0

내가 언급 한 두 개의 GIF 파일에 대해 'xxd'를 적용하면 팔레트가 내부에서 볼 수 있으며 ImageMagick에서도 결과를 얻을 수 있습니다 "convert bbb-nodither.gif -format % c -depth 8 histogram : info : - | " – Vej

0

에 대한 showpalette을 사용할 수 있습니다

내 요약이다 -는 FFmpeg의 기본 팔레트 얻을

다음 명령을 사용 :

ffmpeg -v fatal -i input.mp4 -vf "showpalette=30" -y palette-default.png 

이 명령은 th에 따라 특정 팔레트를 생성 할 수 있습니다. 전자 입력 파일 :

ffmpeg -v fatal -i input.mp4 -vf "palettegen,scale=30*iw:-1:flags=neighbor" -y palette-specific.png