동영상/mp3 플레이어와 같은 미디어 플레이어에서 seek 를 어떤 식으로 구현을 해야되나요?
글쓴이: 하얀하늘이 / 작성시간: 화, 2006/11/28 - 3:14오후
다름이 아니라 제가 간단한 동영상/MP3 플레이어의 스킨부분을 구현하는 부분을 하게 되었는데요. (대학생 입니다.)
GTK를 이용해서 기본 틀을 만들어 놓았는데 seek 부분과 Volume 부분을 어떻게 해야하는지 몰라서 몇일째 막혀 있습니다.
xmms 와 mplayer 의 소스를 분석해볼려고 시도할려고 했는데 막상 소스를 보니 막막해서 ㅠ- ㅠ 훑어보기만 하고 깊이있게 보진 못했습니다. 사실 play, pause 같은 것도 구현하는 방법을 모르지만 seek 를 구현하는 방법을 알게 되면 자연히 play, pause 를 구현할 수 있겠다라고 생각해서 seek 를 집중적으로 보고 있습니다. 이 seek 를 어떤 식으로 구현해야 되는지 알려주세요. 다른 미디어플레이어의 소스를 분석해서 seek를 구현하는게 제일 빠른 방법이나요?ㅠ 엄청 복잡하던데 ㅠ- ㅠ ...
그리고 다른 사람이 하는 부분인데요. 아직 동영상 구현을 하지 못했습니다. 동영상 구현을 하지 못한 상태에서 seek 나 play같은 부분을 완성 혹은 대충이라도 구현할 수 있나요?
Forums:
제 생각에는 플레이
제 생각에는 플레이 포즈 스탑을 먼저 구현하는 게
나을 것 같군요.
최악의 경우에도 플레이 스탑은 동작할 테니까요.
CBR의 경우에는 비교적 간단합니다.
비트레이트가 정해져 있으므로 미디어 파일상의 옵셋과
플레이백 시간이 대체로 비례합니다.
Audio의 경우에는 바로 프레임 헤더만 찾아서 재생하면 됩니다.
Video가 끼면 복잡해지는데
Video안의 P,B-picture는 다른 프레임에 의존적이므로
그것만으로는 디코딩이 불가능합니다.
그자체로도 디코딩이 가능한 I-picture를 찾아야 합니다.
찾은 I-picture 프레임부터 재생하면 됩니다.
(물론, Video/Auido 싱크 맞추는 부분은 구현돼 있어야겠지요)
VBR은 Accuracy가 상관없다면 평균Bitrate로 CBR처럼 하면되구요.
정확도를 요하면 천상 첨부터 Scan하는 수 밖에 없읍니다.
___________________________________
Less is More (Robert Browning)
___________________________________
Less is More (Robert Browning)
답글 감사드립니다 ^- ^
플레이 포즈 스탑 먼저 구현하겠습니다. 생각해보니 기본적으로 플레이라도 되어야겠네요 ㅠ- ㅠ
답글 감사합니다 ^- ^ 허나 제 실력이 얕아 thyoo님이 답글을 이해할 수가 없네요 ㅠ
thyoo 님의 글은 먼저 오디오나 비디오가 다 구현된 상태(OSD와 같은)에서 플레이 포즈 스탑을 구현할 수 있다는 건가요?
흐음 ㅠ-ㅠ 혹시 간단한 오디오/비디오 플레이어를 알고 계신지 ㅠ-ㅠ xmms는 너무 복잡하구 , 소스 분석이 그나마 빠른 길 같은데 ㅠ
volume은..
저도 지금 미디어 재생기를 만들고 있습니다. mfc + ffmpeg + win32 api
를이용해서 만들고 있습니다. 볼률 조절하는 부분이 SDL소스에 보면 있더군요(어제 확인^^;)
만약 음원이 스테레오라면 16bit니까 음원에 2바이트씩 전부 1부터 0사이의
값을 곱해주면 출력이 작아져 볼륨 조절 효과가 납니다.
아래와 같이 되있더군요
아직 저도 만드는 중이라서 해보지는 않았지만 아마 될꺼라 생각합니다
(아니라면 답글 달아주세요..;;)
mplayer 저도 볼려고 생각했는데 복잡하더군요.
ffplay.c 라고 간단하게 만들어진 재생기가 있습니다. 기능은 별로 없지만
참조하기에는 좋은거 같아요
답글 감사드립니다 ^- ^
ffplay.c 를 어디서 구할 수 있나요? 구글에서 검색해보니 ffmpeg 에 포함되어 있는 거 같은데 ffmpeg을 받으면 되나요?
댓글 달기