맥,애플2007/10/16 18:34
코원 D2를 이용하여 동영상을 보던 중 화면 해상도에 비해 자막이 상당히 깔끔하게 잘 나온다는 것을 느꼈습니다. 해상도가 320X240이라 자막을 보기에는 모자라지 않을까 생각했는데 상당히 가독성이 좋더군요.

작년 겨울에 샀던 휴대폰(SPH-V9500)의 해상도 역시 D2와 같은 QVGA급인 320X240인데 화면이 작다고 생각했는지 휴대폰으로는 아예 동영상을 볼 생각을 해보지도 않았었습니다. 하지만 D2가 320X240의 해상도에서도 자막이 있는 동영상을 볼 수 있다는 가능성을 보여주어서 이번엔 휴대폰(SPH-V9500)용 동영상을 만들어보기로 했습니다.

우선 MacOSX에서 ffmpeg을 이용하여 코원 D2용 동영상 만들기를 보고 ffmpeg을 설치해야하는데 SPH-V9500용 동영상을 만들기 위해서는 D2에서 사용된 코덱말고 다른 코덱이 더 필요합니다. 우선 비디오 코덱은 mpeg4를 사용하면 되고 컨테이너 코덱은 mp4를 사용하면 됩니다.만 이 둘은 ffmpeg에 기본적으로 포함되어있으므로 별도로 설치할 것은 없습니다. 다만 오디오는 AAC로 인코딩을 해야하기 때문에 AAC를 지원하도록 ffmpeg을 설치해야합니다. MacOSX에서 ffmpeg을 이용하여 코원 D2용 동영상 만들기에서 나온데로 아래와 같이 FAAD, FAAC가 포함되도록(+faad +faac) ffmpeg을 설치하면 됩니다.
andy$ sudo port install ffmpeg +gpl +xvid +lame +libogg +vorbis +theora +faac +faad +x264 +a52 +dts

그리고 SPH-V9500에 맞도록 동영상을 만들어내면 되는데 여기서 주의해야할 것은 SPH-V9500에서 플레이 가능한 동영상의 화질 및 음질에 맞게 ffmpeg의 옵션을 적절히 조절해주는 것입니다. SPH-V9500의 메뉴얼에 보면 동영상에 대한 다음과 같은 제약사항이 있고 이를 벗어날 경우 정상적으로 플레이되지 않을 수 있다는 문구가 있습니다.
해상도 : 320X240

초당 비디오 프레임 수 : 7 또는 14

비디오 비트 레이트 : 128k

오디오 비트 레이트 : 64k

실제로 이보다 높은 음질과 화질의 동영상을 넣어보았는데 제대로 플레이가 되긴 합니다만 위와 같은 제약사항이 있는 것을 보아선 SPH-V9500이 그 이상의 화질이나 음질은 표현해내지 못하는 것 같습니다. 표현해내지 못한다면 굳이 화질이나 음질을 높이는 설정으로 파일 크기를 크게 만들 필요는 없을 것 같으니 위와 같은 스펙으로 영상 화질, 음질을 맞추면 될 것 같습니다. 위의 설정에 맞도록 동영상을 만들려면 다음과 같이 ffmpeg을 실행하면 됩니다.
andy$ ffmpeg -i movie.avi -r 14 -b 128k -vcodec mpeg4 -s 320x240 -acodec libfaac -ab 64k movie_phone.mp4

위와 같이 동영상을 만들어 내면 SPH-V9500을 통해 다음과 같이 훌륭하게 화면을 볼 수 있습니다. 휴대폰 살 때 들어있던 이어폰을 들고다니면서 동영상을 몇번 봤는데 이제는 블루투스 헤드셋이 탐이 나더군요. :)



Updated: Audio codec으로 AAC코덱을 지정해주는데 최근 ffmpeg버전에서 aac코덱을 지정하는 방법이 달라진 것 같습니다. 그냥 -acodec aac 하니깐 안 되네요. 대신에 -acodec libfaac 로 지정해주면 잘 됩니다.
Posted by 앤디군
맥,애플2007/09/28 11:18
얼마전에 동영상을 보려고 코원 D2를 구입했습니다. MP3에 지상파 DMB도 되고 2.5인치라 화면이 작긴 하지만 동영상도 플레이가 되어 동영상을 넣어 보고 다니기 편리하더군요.

하지만 Windows보다는 MacOSX를 주로 사용하기 때문에 코원에서 제공한 D2용 프로그램들을 이용할 수가 없었습니다. 다행히 맥에 D2를 연결하니 finder에서 바로 보이더군요. Firmware 업그레이드나 MP3 파일은 그냥 파일 복사로 하면 되고 문제는 동영상 인코딩인데 일반적인 비디오, 오디오 코덱을 이용한다면 ffmpeg로 될 것 같아서 ffmpeg을 이용하여 D2용 동영상을 만드는 방법을 찾아봤습니다.

ffmpeg설치

MacOSX에서는 오픈소스 소프트웨어 설치를 쉽게 하기 위한 macports라는 패키지 관리 프로그램이 있어서 오픈 소스 유틸리티 프로그램들을 설치하기 쉽도록 되어있습니다. 동영상을 인코딩하기 위해서는 비디오 코덱, 오디오 코덱, 컨테이너 코덱을 알아야하는데 D2에서는 각각 xvid, mp3, avi를 이용하면 되더군요. ffmpeg에서는 avi는 기본적으로 제공하고 mp3와 xvid는 각각 mp3, xvid라이브러리를 설치하고 그것을 이용하도록 옵션을 주어 설치를 해야하는데 macports에서는 이러한 과정조차 편리하게 설치할 수 있도록 해주고 있습니다. 그래서 다음과 같은 명령으로 ffmpeg을 설치하면 따로 mp3(lame), xvid라이브러리를 설치해야하는 번거로움을 덜어낼 수 있습니다.
andy$ sudo port install ffmpeg +gpl +xvid +lame

여기에 좀 더 많은 포맷의 동영상을 지원하기 위해서 몇가지 더 추가로 설치를 하려면 다음과 같이 하면 됩니다. (AAC, OGG, H264등등지원)
andy$ sudo port install ffmpeg +gpl +xvid +lame +libogg +vorbis +theora +faac +faad +x264 +a52 +dts

동영상 변환(Transcoding)

보통 동영상을 인코딩한다고 하는데 이미 특정 인코딩으로 만들어진 동영상을 다른 인코딩으로 바꾸는 것은 인코딩(encoding)이 아닌 트랜스코딩(transcoding)이라고 합니다. 실제로 동영상 포맷을 변환하는 과정은 이미 인코딩 되어있는 동영상을 디코딩(decoding)하고 그것을 다른 포맷으로 인코딩하는 것이기 때문에 인코딩이라는 용어보다는 트랜스코딩(decoding + encoding)이 적합한 용어죠.

암튼 D2용 동영상을 만들기 위해서는 변환시킬 동영상을 ffmpeg에서 디코딩가능한지 알아봐야합니다. ffmpeg에서 디코딩이 가능한 동영상은 ffmpeg -formats 명령을 이용하면 쉽게 알 수 있습니다. 코원D2에 넣을 동영상이 ffmpeg에서 디코딩 가능한지 확인했다면 이제 코원D2에서 볼 수 있도록 변환하기만 하면 되는데 기본적으로 D2용 동영상을 만들기 위해 비디오 코덱(xvid), 오디오 코덱(mp3), 화면 사이즈(320x240)를 ffmpeg에 알려주기만 하면 됩니다. 컨테이너 코덱인 avi는 그냥 출력 파일 이름의 확장자를 avi로 주면 자동으로 알아서 avi로 변환하게 되므로 따로 지정할 필요가 없습니다. 아래와 같이 변환시킬 동영상 파일(movie.avi)을 -i 옵션에 주고 마지막에 변환되어 나올 파일 이름(moivie_d2.avi)를 주고 필요한 옵션을 지정하면 훌륭하게 D2용 동영상이 트랜스코딩되어 나옵니다.
andy~$ ffmpeg -i movie.avi -r 320x240 -vcodec xvid -acodec mp3 movie_d2.avi

옵션

위와 같이 동영상을 변환하게 되면 화질이나 음질은 원본 동영상의 것을 그대로 따라가게 되는데 사이즈가 너무 크거나 대충 화질, 음질이 조금 떨어져도 별 차이를 느끼지 못한다면 동영상 크기를 줄이기 위해 화질, 음질 조절 옵션을 줄 수 있습니다.
화질 관련 옵션

-b : video bitrate, 320k 정도면 그럭저럭 괜찮게 볼 수 있음.

-r : frame rate, 보통 24정도면 적당.

음질 관련 옵션

-ab : audio bitrate, 128k정도면 일반 mp3음질과 동일.

-ar : audio sampling rate, 44100 또는 22050을 많이 이용.

-ac : audio channel, 1이면 mono, 2이면 stereo

ex)

andy~$ ffmpeg -i movie.avi -r 320x240 -b 320k -r 24 -vcodec xvid -ab 128k -ar 22050 -acodec mp3 movie_d2.avi

D2에 동영상 넣기

이렇게 해서 변환한 동영상은 D2의 동영상 폴더에 finder를 이용하여 복사해 넣기만 하면 됩니다. ffmpeg의 구동에서 부터 복사해 넣는 것까지 쉘스크립트로 만들어 놓으면 GUI프로그램 못지 않게 편리하게 D2에서 동영상을 볼 수 있을 것입니다.
Posted by 앤디군