http://www.flickr.com/photos/florisla/1943594953/

WebM 프로젝트는 누구나 자유롭게 사용할 수 있는 고품질의 오픈된 웹 비디오 포맷을 개발합니다.
모질라, 구글, 오페라를 비롯한 40여개 이상의 컨텐츠 배포자, 소프트웨어 및 하드웨어 제작사들이 WebM을 지원합니다.
WebM은 웹을 위한 오픈 소스의 로열티가 없는 미디어 포맷입니다.
WebM은 파일 컨테이너 구조와 비디오, 오디오 포맷을 정의합니다. WebM 파일은 VP8 비디오 코덱을 사용한 압축된 비디오 스트림과 Vorbis 오디오 코덱을 사용한 압축된 오디오 스트림으로 구성됩니다. WebM 파일 구조는 Matroka 컨테이너를 기반으로 합니다.
구글이 I/O 에서 다수의 파트너들(브라우저에서는 오페라와 모질라가 참여)과 함께 새로운 WebM 프로젝트를 공개했습니다. WebM 프로젝트는 구글이 인수했던 On2의 코덱을 사용합니다. 이 발표는 개방형 비디오 전쟁에 있어 큰 뉴스이며, 이제 모두의 눈은 사파리로 향하게 되었습니다.

WebM 프로젝트는 다음과 같은 목표를 가지고 있습니다.
  • 개방과 혁신. 웹이 성공할 수 있었던 주요 요인은 HTML, HTTP, TCP/IP 와 같은 핵심 기술들이 누구나 구현하고 개선할 수 있도록 개방되어있다는 것이었습니다. 동영상이 웹 경험의 중심이 되어가면서 고품질의 개방된 비디오 포맷이 필요해졌습니다. WebM은 100% 무료인, BSD 유사 라이센스를 가진 오픈 소스 프로젝트입니다.
  • 웹에 최적화. 웹에서 동영상을 제공한다는 것은 전통적인 방송이나 오프라인 미디어와는 다릅니다. 현존하는 비디오 포맷들은 이러한 미디어들의 필요를 충족시키기 위해 고안되었고, 그 목적에 맞게 잘 동작합니다. WebM은 웹에서의 동영상 제공이라는 독특한 필요를 충족시키는 것에 집중했습니다.
    • 넷북, 모바일 장치, 타블렛 등의 어떤 장치에서도 재생할 수 있도록 적은 계산
    • 단순한 컨테이너 포맷
    • 최고 품질의 실시간 비디오 전송
    • 쉬운 인코딩. 최소한의 코덱 프로필과 부가 옵션. 가능하다면, 어려운 결정을 인코더에 위임
* 주의 : WebM을 지원하는 브라우저의 초기 개발자 버전은 아직 완전히 최적화되지 않았습니다. 따라서, 스크린 렌더링을 위해 정상적인 릴리스에 기대했던 것보다는 많은 계산을 요구합니다. WebM의 계산 효율성은 VP8 SDK의 개발자 도구를 통해 보다 정밀하게 측정할 수 있습니다. 브라우저에서의 최적화는 앞으로 이루어질 예정입니다.

개방형 웹에 축하를!

FlashIE9에서도 VP8 코덱을 지원하기로 했습니다. 당연하겠지만, 이제 모두의 관심은 애플의 사파리로 모이고 있습니다. :)

from WebM : The On2 codec is here, with support from Google, Mozilla, and Opera
Posted by 행복한고니 트랙백 1 : 댓글 0
최근의 웹에서 동영상과 동영상 포맷에 대한 글이 많이 늘었습니다. 지금이 Microsoft의 관점을 이야기할만한 좋은 기회가 아닌가 합니다.

웹의 미래는 HTML5입니다. Microsoft는 W3C와 함께 HTML5의 진행에 깊이 관여하고 있습니다. HTML5는 발전하는 풍부한 인터랙티브 웹 응용프로그램과 사이트 디자인에 매우 중요해질 것입니다. HTML5 명세는 동영상을 지원하는데, 특정한 동영상 포맷을 정하지는 않았습니다. 우리는 H.264가 훌륭한 포맷이라고 생각합니다. HTML5를 지원하는 IE9은 H.264 동영상 재생만을 지원합니다.

H.264는 산업 표준으로서 폭넓고 강력한 하드웨어 지원이 뒷받침됩니다. 이러한 표준화 덕분에 여러분은 손쉽게 일반적인 비디오 카메라로 녹화한 동영상을 웹에 올리고, H.264를 지원하는 운영체제(예. Windows 7을 설치한 PC)의 웹 브라우저에서 재생할 수 있습니다. 최근에 우리는 IE9에서 H.264로 인코딩된 유튜브 동영상을 재생해 보인 바 있습니다. 하드웨어 가속의 이점은 여기서 읽을 수 있으며, 혹은 이 강연의 26:35쯤부터 장점의 사례를 볼 수 있습니다.

다른 코덱들도 종종 비교되고는 합니다. 소스 코드를 사용할 수 있다는 것과 소스 코드의 지적재산권을 소유하는 것은 서로 다른 문제입니다. H.264의 지적재산권은 MPEG LA의 프로그램을 통해 잘 관리되고 있으므로, 소스 코드를 광범위하게 사용할 수 있습니다. 반면, 다른 코덱들의 지적재산권은 언론에서 알려진 바와 같이 명확하지 않습니다. 물론, Windows 7과 같은 운영체제의 하드웨어 가속 지원과 H.264 코덱을 사용하려는 개발자들은 아무런 로열티를 제공하지 않아도 됩니다.

오늘날, 웹에서는 플래시 기반의 동영상이 우세합니다. 다른 포맷으로도 동영상을 볼 수 있긴 하지만, 일반 사용자들에게는 플래시만큼 편한 방법도 없습니다. 플래시는 신뢰성, 보안성, 성능 등의 문제가 있습니다. 우리는 Adobe 기술자들과 긴밀히 일하며, 이러한 문제들에 대한 정보도 공유하고 있습니다. 이러한 문제에도 불구하고, 오늘날의 웹에서 플래시가 좋은 사용자 경험을 전달하는데 중요한 위치를 차지한다는 사실은 부정할 수 없습니다.

Dean Hachamovitch
General Manager, Internet Explorer

from HTML5 Video (IEBlog)
Posted by 행복한고니 트랙백 1 : 댓글 0

Jacob Seidelin 씨가 Flash를 사용하지 않고 순수 JavaScript로만 동영상 플레이어를 만들었다고 합니다: 처음엔 바이너리 파일을 바로 읽을까 하다가 마음을 바꿔먹고 생각해낸 것이 JSON 포맷으로 비디오를 표시하는 JSONVid 였다고 합니다.

아래 포맷을 보면 이해하시겠지만, 프레임 한장 한장을 base64 형태의 데이터로 내보낸 것입니다! (Crazy! 라는 말이 저절로 나와요):

[code:JScript]
{
frm : "JSVID", // format id tag
ver : 1, // version number of format
width : 320, // width of video
height : 240, // height of video
rate : 15, // framerate (frames per second)
frames : 495, // number of frames in file
data : {
video : [ // here comes 495 data:uris containing base64 encoded jpeg image frames
"https://t1.daumcdn.net/cfile/tistory/2550BE4256E6943610",
"https://t1.daumcdn.net/cfile/tistory/2647263C56E6943631",
...
]
}
}
그 다음에는 플레이어를 만들었습니다.

처음에는 각각의 프레임을 이미지 객체로 만들어서 캔버스 엘리먼트에 drawImage()를 이용해 렌더링하려고 했습니다. 잘 동작했고, 성능도 좋았지만(Opera에서는 CPU를 과하게 사용하긴 했습니다만), 보통의 이미지 태그만을 사용해서 각 프레임별 data:uri를 src 속성을 통해 바꿔주기만 하면 되겠다라고 생각했습니다. 변화는 Firefox와 Safari에서는 겨우 알아챌 수 있을 정도였고, Opera에서는 다소 나아져서 작동되었습니다. 그래서, 저는 캔버스를 버리고보통의 이미지들만 사용했습니다.

이제는, 똑같은 이미지 태그에 data:uri 만 변경하는 것을 계속하면 Firefox가 메모리를 다 잡아 먹을 것처럼 보였습니다. 그래서, 각각의 프레임마다 다음 프레임을 위한 새로운 이미지 객체를 만들고 저장해두었습니다. 동영상이 재생됨에 따라, 이전 프레임 이미지는 새로운 이미지 객체로 대체되었습니다. 이것은 잘 동작하는 것 같았지만 재생 전에 매번 이미지 객체를 생성하는 만큼 짜증스러운 딜레이가 생겼습니다. 그래서 결국 이미지 생성을 실제 렌더링 주기로 옮겨서 프레임 이미지가 이미 생성되어있는지 확인하고 없는 경우에만 새로 만들도록 했습니다.

이렇게 사용하면 된다고 합니다:

[code:Xml]
<html>
<head>
<script src="jsvideo.js" type="text/javascript"></script>
</head>
<body>
<div videosrc="myvideo.jsvid" videoautoplay="true"></div>
</body>
</html>

직접 테스트를 해보실 수도 있습니다(test1, test2). 하지만 여전히 Flash가 동영상에 있어서 최선의 방법인 것은 사실인 것 같습니다.

from JSONVid: Pure JavaScript Video Player on Ajaxian

Posted by 행복한고니 트랙백 0 : 댓글 0