안녕하세요 ffmpeg key frame(i-frame) 얻는 방법 문의드립니다
프레임을 읽었을때 해당 프레임이 i-frame 인지 확인할 수 있는 함수가 있을까요? 아니면 별도에 값들로 계산 후 얻을 수 있는 방법이 있을까요?
아시는분 답변 좀 부탁드립니다.
잠시 구글 검색해 봤습니다.
[1] ffmpeg 실행파일을 이용
http://superuser.com/a/669733
핵심이 되는 옵션이 -vf "select=eq(pict_type\,I)" 인 것 같습니다.
[2] ffprobe를 이용
http://superuser.com/questions/885452/extracting-the-index-of-key-frames-from-a-video-using-ffmpeg
[3] libav* 을 이용한 프로그래밍으로 해결
http://dranger.com/ffmpeg/tutorial01.html
이 샘플은 키프레임을 판별하고 있지는 않지만, 아마도 아래의 조건을 테스트해보고 적절히 쓰면 될 것으로 추측합니다. 제가 해보지는 않았습니다. 해보시게 되면 피드백 주시면 다른 분들께도 도움이 되겠습니다.
디코딩하기 전에 판별하려면,
AVPacket.flags == AV_PKT_FLAG_KEY
디코딩한 뒤에 판별하려면,
AVFrame.key_frame == 1 AVFrame.pict_type == AV_PICTURE_TYPE_I
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
잠시 구글 검색해 봤습니다.[1] ffmpeg
잠시 구글 검색해 봤습니다.
[1] ffmpeg 실행파일을 이용
http://superuser.com/a/669733
핵심이 되는 옵션이 -vf "select=eq(pict_type\,I)" 인 것 같습니다.
[2] ffprobe를 이용
http://superuser.com/questions/885452/extracting-the-index-of-key-frames-from-a-video-using-ffmpeg
[3] libav* 을 이용한 프로그래밍으로 해결
http://dranger.com/ffmpeg/tutorial01.html
이 샘플은 키프레임을 판별하고 있지는 않지만,
아마도 아래의 조건을 테스트해보고 적절히 쓰면 될 것으로 추측합니다.
제가 해보지는 않았습니다. 해보시게 되면 피드백 주시면 다른 분들께도 도움이 되겠습니다.
디코딩하기 전에 판별하려면,
AVPacket.flags == AV_PKT_FLAG_KEY
디코딩한 뒤에 판별하려면,
AVFrame.key_frame == 1
AVFrame.pict_type == AV_PICTURE_TYPE_I
댓글 달기