곰인코더는 아직도 돈을 받고 있군요-_-; 곰인코더보다 뛰어난 것 같아요.

인코더를 여러개를 써봤는데요. 아래는 다 무료인코더입니다^^

Show인코더 : 이건 업데이트가 안되고 있는데요. 한 때 곰인코더가 유료화 되는 바람에 다른 인코더를 찾다가 찾게 되었는데요. 단점이 안되는 동영상도 있고, 변환 시 미리보기도 안되고, 콘솔창에서 막 변환하고, 업데이트도 안되는 여러 단점이 있습니다. 아 자막도 인코딩이 안되는군요.

유마일인코더 : 유마일인코더는 Show인코더 다음으로 대체수단으로 찾던 도중 찾은 건데요. 꽤나 마음에 들었어요. 프리셋설정할 수도 있고, 자막도 함께 인코딩을 할 수 있고, 왠만한 동영상은 다 되더라구요.

코원 미디어센터 - 제트오디오 : 코원에서 변환기가 있다고 해서 한번 써봤는데, 프리셋설정할 수 없는 것같고(프리셋이 다 정해져있는 듯. 코원제품의 프리셋을 다 지원합니다^^), 속도가 정말 쥐약입니다. 거의 실시간보다 안나오더라구요-_-; 제 컴이 꼬져서 그런 것일 수도 있으나 다른 인코더는 최소한 실재생시간보다는 빠르던데^^ 다른 분에 말에 의하면 그래도 가장 안정적이라고 하네요. 아....얘는 오디오 인코딩도 할 수 있어요^^ 얘도 자막인코딩할 수 있구요^^ 그리고, 인코딩하려고 하면 구글애드센스 광고가 떠요-_-;

이것보다 제 마음에 든 인코더는 다음 팟인코더였습니다.
다음팟인코더 주소 http://tvpot.daum.net/encoder/PotEncoderSpec.do

우선 다양한 프리셋을 제공합니다. 이것저것 삽질할 필요가 없는 것 같아요. 저는 COWON S9(스구)때문에 인코더를 찾았는데요(그전에는 핸드폰때문에-_-), 우선 S9에 맞는 설정은 없습니다만, S9는 비디오 크기가 480x272이기 때문에, 제일 잘 맞는 아이리버 -> iriver Dicple D30 CBR설정이 S9에 가장 잘 맞는 듯합니다^^
그리고, 왠만한 동영상은 다 읽고 인코딩이 가능합니다^^
또한 자막 인코딩도 됩니다(코원S9에는 필요없는 기능이지만, 코원S9에서 보여주는 자막이 저는 조금 작다고 생각하거든요. 그래서 인코딩해야하는 동영상은 자막도 같이 인코딩해버립니다-_-)
그리고, 속도도 제일 빠릅니다. 다 같은 코덱으로 인코딩해본 것은 아니지만, 이건 1.5~3.0왔다갔다 하면서 실시간의 절반가량의 속도로 인코딩을 하더군요.
또한 부가기능이 매우 매력적이네요. 동영상 편집을 할 수 있습니다. VirtualDub같은 것에서 할 수 있는 간단하게 원하는 부분만 짤라서 저장이 가능합니다.
또한 다음에서 만든거라 다음TV팟에 업로드도 할 수 있습니다.

인코딩은 파일을 불러와서 원한느 설정을 선택해서 인코딩 시작 누르면 뭐 끝납니다. 자세한 설명은 다음tv팟홈페이지에 잘 설명이 되어있어요^^
http://tvpot.daum.net/encoder/EncoderGuideNewVer.htm

동영상 편집을 한번 해볼까요?
우선 동영상편집 탭으로 이동을 합니다. 불러오기 버튼을 누른 후 원하는 동영상을 선택합니다. 동영상을 왼쪽 화면에 드래그를 합니다. 그런다음에 시작과 끝 아이콘을 클릭하고, 드래그를 하면 원하는 부분을 지정한 후, 삽입버튼을 누르면 끝입니다. 시계같이 생긴 버튼은 정확하게 시간 분초를 입력해서 그부분만 자를 수 있습니다.

사용자 삽입 이미지
시작과 끝이 부분이 지정된 걸 볼 수 있습니다. 삽입버튼 누르면 아래 타임라인에 들어가는데, 그러면 아래 타임라인대로 인코딩이 된 동영상이 만들어지게 됩니다.

하지만, VirtualDub에 비해서 한없이 느리고, 편집하기도 힘들군요. 또한 자막과 함께 인코딩하는 것도 안되는 것 같군요. 대신 장점은 따로 코덱을 설치하지 않아도 인코딩할 수 있고, 텍스트 같은 것도 쉽게 넣을 수 있는 듯합니다.

동영상 편집기능은 아직 좀 부족한 것 같지만, 인코딩 기능은 맘에 드네요.
 
Posted by 머드초보
,
 
역시 예제는 소녀시대를 이용해서.....-_-;
우선 저는 파이썬을 전혀 모르는 상태에서 만들었기때문에 태클환영합니다ㅠ

앱엔진 셋팅은 이곳을 참조 http://mudchobo.tomeii.com/tt/390

우선 편하게 코딩하기 위해서 NetBeans를 이용할 것인데, 이것을 이용해서 애플리케이션을 실행하거나 하지는 않아요. 실행은 cmd창 띄운 뒤, 그냥 수동으로 실행할겁니다(설정을 못해서-_-) 디버깅도 어떻게 하는지 모르겠네요. 할 순 있는건가-_-;

넷빈즈실행 -> New Project -> Python -> Python Project -> Project이름은 GirlsGenerationsAge-_-; -> Finish!
프로젝트 Properties에서 Sources -> Encoding을 utf-8로 변경.

우선 DB모델을 만들어야하는데요.
[code]class Sosi(db.Model):
    name = db.StringProperty()
    birth = db.IntegerProperty()[/code]
db.Model을 상속받고, name과 birth라는 property가 있어요. name은 이름이고. birth는 태어난 해입니다.

첫 메인페이지를 만들어야하는데요.
[code]class MainPage(webapp.RequestHandler):
    def get(self):
        path = os.path.join(os.path.dirname(__file__), 'html/index.xhtml')
        self.response.out.write(template.render(path, {}))[/code]
이 페이지는 html/index.xhtml파일을 불러오게 되어있어요. 그럼 html/index.xhtml파일을 만들어봅시다.
우선 html이라는 폴더를 source에다가 하나 만들고, 거기에다가
New -> Other -> Other -> XHTML File -> File Name은 index입력 후 finish.
html/index.xhtml
[code]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>소녀시대 나이검색</title>
    </head>
    <body>
        <form action="/search" method="post">
            <div>소녀시대 멤버이름을 입력하세요 :
            <input type="text" name="name" />
            <input type="submit" value="검색" /></div>
        </form>
    </body>
</html>[/code]
메인페이지가 완성이 되었어요! 그럼 이제 요청을 하는 search페이지를 만들어봅시다.
[code]class Search(webapp.RequestHandler):
    def post(self):
        name = self.request.get('name')
        sosis = db.GqlQuery("SELECT * FROM Sosi WHERE name = :1", name)
        sosi = sosis.get()
        if sosi:
            now = time.localtime()
            age = now.tm_year - sosi.birth + 1
        else:
            age = 0
        path = os.path.join(os.path.dirname(__file__), 'html/search.xhtml')
        template_values = {
            'age': age,
            'name': name
        }
        self.response.out.write(template.render(path, template_values))[/code]
post요청이 들어오면 post함수를 호출하네요. name에 대한 파라메터값을 받아서 그 값을 이용해 GqlQuery를 날려줘서 sosi객체를 가져옵니다. 그러면 현재 year를 이용해서 나이를 구할 수 있습니다. 그럼 search.xhtml파일에 값을 나이와 이름을 넘겨줘서 요청하게 되어있네요.
html/search.xhtml
[code]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>소녀시대 나이 검색결과</title>
    </head>
    <body>
        {% ifequal age 0 %}
            {{name}}은/는 소녀시대의 멤버가 아닙니다.
        {% else %}
            {{name}}의 나이는 {{age}}세 입니다.
        {% endifequal %}
    </body>
</html>[/code]
저기 html안에 if문같은 것은 Django template language라는 것인데요. JSP에서 jstl같은게 아닐까요?-_-;
암튼 값이 없으면 0을 넘겨주기 때문에 0이면 멤버가 아니고, 나이가 나오면 멤버가 되는 형식으로 되어있습니다.

아래는 이해는 잘 못했습니다만, 어떤 요청이 오면 어떤 클래스를 요청하고 정의하는 것 같은데, 이렇게 쓰이더라구요-_-;
[code]application = webapp.WSGIApplication([
    ('/', MainPage),
    ('/search', Search)
], debug=True)[/code]
끝으로 메인페이지입니다.
[code]def main():
    db.delete(Sosi.all())
    Sosi(name=u"윤아", birth=1990).put()
    Sosi(name=u"수영", birth=1990).put()
    Sosi(name=u"효연", birth=1989).put()
    Sosi(name=u"유리", birth=1989).put()
    Sosi(name=u"태연", birth=1989).put()
    Sosi(name=u"제시카", birth=1989).put()
    Sosi(name=u"티파니", birth=1989).put()
    Sosi(name=u"써니", birth=1990).put()
    Sosi(name=u"서현", birth=1991).put()
    run_wsgi_app(application)[/code]
뭐 우선 처음 애플리케이션이 실행될 때, DB에 있는 걸 다 날려버리고, 해당 데이터를 삽입하고 시작하게 됩니다.
invalid-file

파이썬 전체 코드입니다.



이제 YAML파일을 만들어야 합니다.
New -> Other -> Other -> YAML File -> File Name은 app, Folder는 src폴더로 지정해야합니다.
app.yml
[code]application: ggages
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
  script: GirlsGenerationsAge.py[/code]
우선 script부분에서 해당 py파일을 넣어주면 되고, application에는 App Engine에서 생성한 Application ID를 입력해주시면 됩니다. Girls' Generations Age의 약자로.....ggages(최소 6자기때문에 s를...-_-)

실행을 해봅시다.
cmd창을 열어서 해당 넷빈즈 프로젝트로 이동합니다. 아래와 같이 실행합니다.
[code]C:\Users\mudchobo\Documents\NetBeansProjects\GirlsGenerationsAge>dev_appserver.py src/[/code]
그리고, http://localhost:8080 으로 브라우저를 띄워서 접속해봅시다.
실행이 제대로 된다면, 이제 구글에 올려봅시다.
[code]C:\Users\mudchobo\Documents\NetBeansProjects\GirlsGenerationsAge>appcfg.py update src/[/code]
이렇게 하면 처음하는 경우에 구글계정의 아이디와 비밀번호를 물어봅니다. 입력하면 바로 디플로이됩니다.

http://ggages.appspot.com/에 접속하면 디플로이 된 것을 확인할 수 있습니다. 자신의 계정에 맞게 디플로이하면 되겠죠?^^

 
Posted by 머드초보
,
 
http://appengine.google.com/start 에 접속하면 로그인을 하라고 나옵니다. 구글계정으로 로그인 하고나면 Create an Application버튼과 왤컴한다는 내용이 있을겁니다.
사용자 삽입 이미지
전 여기서 좀 고생을 했는데요-_-; SMS인증을 받아야하거든요. 국내통신사도 지원한다고 했는데, 전 안되는 것이였습니다. 결론은 전화번호를 잘못 입력해서......-_-;
Create an Application을 클릭하면 아래와 같은 화면이 나옵니다.
사용자 삽입 이미지
Country는 당연히 우리나라는 없더군요. Mobile Number에서 저는 +82 010 0000 0000이라고 입력하니....안되더군요-_-; 바보같이-_- 010에서 0을 빼야합니다ㅠ +82 10 0000 0000 라고 하니 되더군요 ㅠ 하루고생했습니다ㅠ

보내고 나면 애플리케이션을 만들 수 있는데요. 우선 Application Identifier:에유니크한 이름을 적습니다. 여기서좀 이상한 점이......분명 available이라고 해놓고, 등록하려고 하면 이미 사용하고 있다고 나오는 경우가 있더라구요. sosiage라고 등록하려고 하니 그렇더라구요-_-; 이 app id는 한번 등록하면 바꿀 수 없구요. 총 10개의 애플리케이션을 만들 수 있습니다. 더 쓰고 싶으면 돈내라 이건가.....

애플리케이션을 생성했으면 이제 개발툴을 설치해야합니다.
http://code.google.com/intl/ko-KR/appengine/downloads.html 이곳에 가면 다운로드할 수 있는데, 분명 저번 세미나에서 보여줬던 관리툴같은 게 있었던 것 같은데, Mac OSX용만 있나봅니다 ㅠ
아.....이걸 설치하기전에 파이썬부터 설치해야합니다.

http://www.python.org/download/
안정적인 버전이 2개가 있는데, 2.6.1과 3.0.1이 있네요.
3.0.1을 설치하면 안됩니다-_-;
2.6.1버전을 설치해야합니다. 설치는 그냥 다음신공으로 설치할 수 있어요. 쉬워요!

그 다음 개발툴을 설치하면 됩니다.
그리고 난 다음에 데모를 실행해서 잘 되는지 확인해보면 됩니다.
시작 -> 실행 -> cmd를 열고......디폴트로 설치했다면 이곳에 데모가 있을 겁니다.
[code]cd C:\Program Files\Google\google_appengine\demos
dev_appserver.py guestbook/[/code]이렇게 실행하면
INFO     2009-03-01 05:08:50,332 dev_appserver_main.py] Running application guestbook on port 8080: http://localhost:8080
웹브라우저에서 http://localhost:8080을 입력하면 초간단 방명록이 실행되고 있을겁니다-_-;

PS. python이라는 언어가 참 간결하고 좋긴한데, 전.....개인적으로 다른 언어도 지원했으면 좋겠네요-_-;

 
Posted by 머드초보
,
 
파이썬까지 손대보는군요. 구글 앱스 엔진때문에-_-;
기본적인 언어를 다루시는 분이라면 그리 어렵지 않게 접근할 수 있어요^^
대신 파이썬은 툴이 별로 없는 것 같은데, NetBeans에 좋은 툴이 있습니다^^(파이썬을 안지 별로 안돼서-_-;)
아직 정식버전에 포함되지 않는 것 보니 문제가 좀 있나봅니다-_-;
자세한 사항은 아래 사이트에서^^
http://wiki.netbeans.org/NetBeansPythonTutorial

넷빈즈를 실행하고 메뉴에서 Tools -> Plugins에서 Available Plugins에 Python이라는 것이 있을 겁니다. 그걸 체크해서 설치하시면 됩니다.
설치하시면 아래와 같이 Installed에 나오게 됩니다.

우선 기본적으로 파이썬이 설치가 안되어 있어도 Jython 2.5b0+버전이 설치가 되기 때문에 그냥 이걸 쓰셔도 돼요. 하지만, 파이썬이 깔려있다면 자동으로 잡아주네요^^ 전 플러그인을 설치하자마자, Jython2.5b0+과 Python2.6.1버전 2개가 보이더군요. 자동으로 잡아주다니 대단합니다^^

사용자 삽입 이미지

Installed에 설치되면 된겁니다^^ 참 쉽져잉?

설치한 김에 Hello World를 찍어봅시다.
아......우선 파이썬에서도 역시 빠지지 않는 한글문제가 존재합니다-_-(이건 어딜 가나 말썽이군요-_-)
우선 해당 페이지를 utf-8로 인코딩된 페이지를 만들어야합니다.
New Project -> Python -> Python Project -> ProjectName은 HelloPython, Python Platform은 원하는 걸로 선택하시고...
사용자 삽입 이미지
Finish를 누르면 완성됩니다. 바로 Hello코드가 완성되어 있습니다. 만약 Jython 2.5b0+로 하셨다면 에러가 안나겠지만, 설치된 Python 2.6.1로 하시면 에러가 납니다-_-; 저 같은 경우에는 납니다-_-;
[code]File "C:\Users\mudchobo\Documents\NetBeansProjects\HelloPython\src\HelloPython.py", line 3
SyntaxError: Non-ASCII character '\xbf' in file C:\Users\mudchobo\Documents\NetBeansProjects\HelloPython\src\HelloPython.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details[/code]
원인은 자동으로 생성한 코드에 한글이 들어가서 발생한 것 같습니다. 아래가 자동으로 생성한 코드입니다.
[code]__author__="mudchobo"
__date__ ="$2009. 3. 1 오전 11:48:04$"

if __name__ == "__main__":
    print "Hello";[/code]
3번째 줄에 한글이 있군요-_-; 그래서 페이지 인코딩을 utf-8로 변경해야합니다. 2가지 작업을 해야합니다-_-;
페이지 맨 위에
[code]# -*- coding:utf-8 -*-[/code]를 추가해주고, 프로젝트 Properties에서 Sources에서 encoding을 utf-8로 변경해주어야 합니다.
그러면 잘 될 겁니다 ^^
 
Posted by 머드초보
,
 
동영상 기능이 이렇게 뛰어날 줄 몰랐네요. 최근 동영상들은 대부분 xvid로 인코딩 되어있어서(내가 받는거만 그런건가-_-) S9에 그냥 넣으면 다 재생이 되네요^^ 자막도 잘나오구요^^
하지만 제가 가지고 있는 애니메이션중에 확장자가 MKV인 것이 있는데요. 이것은 인코딩해야합니다 ㅠ 지원하지 않는 확장자라^^
인코더는 역시 유마일인코더가 짱인 듯 합니다. 시간은 거의 실시간보다 조금 더 빠르구요-_-; 설정은 맘에 드시는 대로 하시면 됩니다. 전 비트레이트를 500정도로 했는데도 볼만하네요^^ XVID코덱으로 800정도 해도 되더군요.
이것저것 실험하기 귀찮다고 하시는 분들은 제트오디오에 포함된 인코더를 사용하셔도 됩니다. 하지만, 속도는 더 느립니다. 어떤 블로그를 보니 속도는 느리지만, 안정성이 있다고 하네요.
둘 다 해봤는데, 유마일인코더가 더 빠른 듯 합니다^^
유마일인코더 : http://www.umile.kr/encoder/
제트오디오 : http://product.cowon.com/product/product_cmc_jetaudio.php
둘 중 원하는 인코더를 사용하세요^^

1. 동영상

사용자 삽입 이미지

자막이랑 영상 다 잘나오네요. 무인코딩된 것이고, xvid로 인코딩 된 것입니다.

아....단점이 있다면 자막 싱크를 여기서 직접 조절하지 못해요. 자막 싱크확인하고 넣어야할 듯-_-; 그리고, 자막 글씨체 설정변경하는 것이나 크기변경하는 것은 없는 것 같군요-_-; 너무 많은 것을 바랬나요? ㅠ 전 맑은 고딕이나 나눔 고딕이 좋은데^^

사용자 삽입 이미지
QUICK LIST를 터치하면 현재 리스트를 보여주고, 재생된 것은 섬네일도 보여주네요. 그래고 아래 메뉴에서는 화면을 실제 사이즈로 보여줄 것인지 크게 보여줄 것인지 설정하는 것이있고, 반복재생이나 뭐 그런 것도 있네요. 근데, 음장같은 경우 음악들을 때 설정을 그대로 따라가는 듯 하는데요. 지금 Rock로 설정되어있는데, 설정을 바꾸는 것이 동영상쪽 메뉴에 없습니다-_-; 음악에서 가서 바꿔줘야 하는 듯 합니다 ^^

2.DMB
DMB짱입니다. 정말 잘나오네요. 사실 다른 지상파DMB는 잘 안써봐서 모르겠는데, 다른 사람들의 말을 들어보니 S9가 수신율이 좋다고 하네요.
사용자 삽입 이미지
화면을 320X240으로 볼 수 있고, 늘릴 수도 있습니다. 화면 캡쳐도 가능하고, 화면녹화도 가능합니다. 맘에 듭니다.
사용자 삽입 이미지
채널 선택은 아래 메뉴에서 터치를 해주시면 되구요.

하지만 화면이 작아서 액션이나 sf같은 영화 보시면 좀 힘들 듯 ^^ 그런건 pmp로 봐도 힘드니-_-; 장르는 드라마나 코미디 같은 것을 보세요^^
 
Posted by 머드초보
,