하늘높이의 프로그래밍 이야기

당분간 쓸만한 2메가 변환 옵션

I:\FFMPEG\bin>ffmpeg -i "f:\INPUT.asf" -b:v 2256k -b:a 1
28k -r 29.97 -ab 128k -crf 30 -profile:v baseline -re -cbr_quality 10 -maxrate:v
 2300k -copyts OUTPUT.mp4

 

Win32용 FFMPEG 컴파일된것... http://ffmpeg.zeranoe.com/builds/

저작자 표시 비영리 변경 금지
신고

'Media Tech > H.264,VC-1,Codec' 카테고리의 다른 글

FFMPEG 옵션  (0) 2012.05.11
FFMPEG Rebuild  (0) 2009.12.09
Apple's Darwin Streaming Server On Fedora 10  (0) 2009.04.16
VLC 로 트랜스코딩하기  (0) 2009.02.11
MKV 포맷...  (3) 2008.09.22
Video codecs tutorial  (0) 2007.07.12

COMMENT :0

최근에 새로 구매한 아이팟 터치용으로 동영상을 인코딩하려 하는데.....
Fodora core 12 에서 FFMpeg 아래와 같은 옵션으로 돌릴려고 하니...

ffmpeg -i "INPUT.avi" -acodec libfaac -ab 128k -s 480x320 -vcodec mpeg4 -b 0.5M -flags +aic+cbp+mv0+mv4 -trellis 1 -mbd 2 -cmp 2 -subcmp 2 -g 250 -maxrate 0.8M -bufsize 2M -metadata "title=제목" -f ipod "OUTPUT.mp4"
 
뭐 대략 faac 오류...
알고 봤더니 아래와 같이 faac 옵션이 빠져있었다.
(사연은 non-free가 되었다는....)

FFmpeg version SVN-r20372, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  built on Nov  7 2009 17:50:32 with gcc 4.4.2 20091027 (Red Hat 4.4.2-7)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib --mandir=/usr/share/man --arch=i686 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables' --extra-version=rpmfusion --enable-bzlib --enable-libdc1394 --enable-libdirac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avfilter-lavf --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib --cpu=i686 --enable-runtime-cpudetect
  libavutil     50. 3. 0 / 50. 3. 0
  libavcodec    52.37. 1 / 52.37. 1
  libavformat   52.39. 2 / 52.39. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libavfilter    1. 4. 1 /  1. 4. 1
  libswscale     0. 7. 1 /  0. 7. 1
  libpostproc   51. 2. 0 / 51. 2. 0

[root@linuxserver i686]# rpmbuild --rebuild --with faac ffmpeg-0.5-5.20091026svn.fc12.src.rpm
RPM 리빌딩, 의존성 개발 RPM들 설치, RPM 재 설치


[root@linuxserver i686]# ffmpeg
FFmpeg version SVN-r20372, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  built on Dec  9 2009 13:30:26 with gcc 4.4.2 20091027 (Red Hat 4.4.2-7)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib --mandir=/usr/share/man --arch=i686 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables' --extra-version=rpmfusion --enable-bzlib --enable-libdc1394 --enable-libdirac --enable-libfaac --enable-nonfree --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avfilter-lavf --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib --cpu=i686 --enable-runtime-cpudetect
  libavutil     50. 3. 0 / 50. 3. 0
  libavcodec    52.37. 1 / 52.37. 1
  libavformat   52.39. 2 / 52.39. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libavfilter    1. 4. 1 /  1. 4. 1
  libswscale     0. 7. 1 /  0. 7. 1
  libpostproc   51. 2. 0 / 51. 2. 0

IPOD 터치용 인코딩 성공!!~

신고

'Media Tech > H.264,VC-1,Codec' 카테고리의 다른 글

FFMPEG 옵션  (0) 2012.05.11
FFMPEG Rebuild  (0) 2009.12.09
Apple's Darwin Streaming Server On Fedora 10  (0) 2009.04.16
VLC 로 트랜스코딩하기  (0) 2009.02.11
MKV 포맷...  (3) 2008.09.22
Video codecs tutorial  (0) 2007.07.12

COMMENT :0

 

다윈 퀵타임 스트리밍 서버를 현재 쓰고 있는 리눅스(Fedora 10)에 깔아 보려고 만만한 문서를 검색해 보았다. 아래와 같이 CentOS에 설치하는 문서를 발견.

RPM 시스템이니 약간의 경로만 바꾸니 바로 설치가 가능했다.

 

출저: http://www.howtoforge.com/apples-darwin-streaming-server-on-centos-5.2

 

Introduction

This tutorial will run you through the installation, configuration and preparation of media for Apple’s Darwin QuickTime Streaming Server on Centos/RHEL 5.2. Darwin QuickTime Streaming Server is capable of serving H.264 and mpeg4 file formats via the RTP/RTSP streaming protocols.

Prerequisites
  1. CentOS 5.2 x86 installed
  2. Development tools must be installed (can be installed after install with

    yum groupinstall "Development Tools"

    )

  3. Static IP address and hostname; I used 192.168.0.10 and example.org as my hostname
  4. Disable firewall and SELinux (configure later)
Installing Darwin Streaming Server 6.0.3

Currently there are no official binary packages of the current version so we will grab a source RPM. Apple’s current source package dose not compile on a Linux system without being patched. Enter the following command by command!

su -
wget http://www.abrahamsson.com/DarwinStreamingServer-6.0.3-2.src.rpm
rpm -i DarwinStreamingServer-6.0.3-2.src.rpm
cd /root/rpmbuild/SPECS/
rpmbuild -bb DarwinStreamingServer.spec
cd /root/rpmbuild/RPMS/i386/
yum –y install perl-Net-SSLeay
rpm -U DarwinStreamingServer*

When installing the RPMs the install hangs when trying to start Darwin so wait a few minutes then open another terminal session using Alt + F2 and run the following as root:

killall -9 DarwinStreamingServer

To change the administrator account from the default password of “password” use the following command:

qtpasswd administrator

So DSS starts at boot up run the following:

chkconfig --level 345 dss on

신고

'Media Tech > H.264,VC-1,Codec' 카테고리의 다른 글

FFMPEG 옵션  (0) 2012.05.11
FFMPEG Rebuild  (0) 2009.12.09
Apple's Darwin Streaming Server On Fedora 10  (0) 2009.04.16
VLC 로 트랜스코딩하기  (0) 2009.02.11
MKV 포맷...  (3) 2008.09.22
Video codecs tutorial  (0) 2007.07.12

COMMENT :0

테스트용으로 H.264로 트랜스코딩을 부탁 받았다.

원본으로 구한 동영상은 640짜리 2개 파일(Golden.avi, flower.avi)이고 출력물은 품질 별로

총 12개!

분류

비디오Kbps

오디오 Kbps

사이즈

비고

1

320

64

480 x 270

 

2

320

64

640 x 360

 

3

600

64

480 x 270

 

4

600

64

640 x 360

 

5

1500

64

640 x 360

 

6

1500

128

640 x 360

 

 

#!/bin/sh

vlc -vvv "floswer.avi" --sout '#transcode{vcodec=h264,vb=320,scale=0.75,acodec=mp4a,ab=64,channels=2}:duplicate{dst=std{access=file,mux=mp4,dst=F4_1.avi}}'
vlc -vvv "floswer.avi" --sout '#transcode{vcodec=h264,vb=320,scale=1,acodec=mp4a,ab=64,channels=2}:duplicate{dst=std{access=file,mux=mp4,dst=F4_2.avi}}'
vlc -vvv "floswer.avi" --sout '#transcode{vcodec=h264,vb=600,scale=0.75,acodec=mp4a,ab=64,channels=2}:duplicate{dst=std{access=file,mux=mp4,dst=F4_3.avi}}'
vlc -vvv "floswer.avi" --sout '#transcode{vcodec=h264,vb=600,scale=1,acodec=mp4a,ab=64,channels=2}:duplicate{dst=std{access=file,mux=mp4,dst=F4_4.avi}}'
vlc -vvv "floswer.avi" --sout '#transcode{vcodec=h264,vb=1500,scale=1,acodec=mp4a,ab=64,channels=2}:duplicate{dst=std{access=file,mux=mp4,dst=F4_5.avi}}'
vlc -vvv "floswer.avi" --sout '#transcode{vcodec=h264,vb=1500,scale=1,acodec=mp4a,ab=128,channels=2}:duplicate{dst=std{access=file,mux=mp4,dst=F4_6.avi}}'

vlc -vvv "Golden.avi" --sout '#transcode{vcodec=h264,vb=320,scale=0.75,acodec=mp4a,ab=64,channels=2}:duplicate{dst=std{access=file,mux=mp4,dst=GOLDEN_1.avi}}'
vlc -vvv "Golden.avi" --sout '#transcode{vcodec=h264,vb=320,scale=1,acodec=mp4a,ab=64,channels=2}:duplicate{dst=std{access=file,mux=mp4,dst=GOLDEN_2.avi}}'
vlc -vvv "Golden.avi" --sout '#transcode{vcodec=h264,vb=600,scale=0.75,acodec=mp4a,ab=64,channels=2}:duplicate{dst=std{access=file,mux=mp4,dst=GOLDEN_3.avi}}'
vlc -vvv "Golden.avi" --sout '#transcode{vcodec=h264,vb=600,scale=1,acodec=mp4a,ab=64,channels=2}:duplicate{dst=std{access=file,mux=mp4,dst=GOLDEN_4.avi}}'
vlc -vvv "Golden.avi" --sout '#transcode{vcodec=h264,vb=1500,scale=1,acodec=mp4a,ab=64,channels=2}:duplicate{dst=std{access=file,mux=mp4,dst=GOLDEN_5.avi}}'
vlc -vvv "Golden.avi" --sout '#transcode{vcodec=h264,vb=1500,scale=1,acodec=mp4a,ab=128,channels=2}:duplicate{dst=std{access=file,mux=mp4,dst=GOLDEN_6.avi}}'

VLC 쉘… 괜찮은데? 이용해서 배치 트랜스코더를 만들어볼까?

신고

'Media Tech > H.264,VC-1,Codec' 카테고리의 다른 글

FFMPEG Rebuild  (0) 2009.12.09
Apple's Darwin Streaming Server On Fedora 10  (0) 2009.04.16
VLC 로 트랜스코딩하기  (0) 2009.02.11
MKV 포맷...  (3) 2008.09.22
Video codecs tutorial  (0) 2007.07.12
[본문 스크랩] ADPCM/PCM  (0) 2006.05.29

COMMENT :0



요즘에는 어둠의 경로에서 HD 동영상을 구하다 보면 문득 MKV라는 확장자가 많은것 같다.
H.264 코덱의 컨테이너로 많이 사용되는데.......

이 파일들을 집에 웹서버에 올려놓고......
다운받지 않고 스트리밍으로 보는 방법이 없을까?
생각해 보았는데....

웹서버 + MKV +  VLC 조합에서 놀라운 결과를 보여주었다.
생각도 안했던 동영상 스킵(동영상 위치 점프), 1~2초가 안되는 버퍼링... 등이 가능했다.

단 최신버전에서 한글이 잘안나오는 문제 발견.....
SMI와 기타 메시지가 ㅁㅁㅁㅁ로 표현...

어쨌든 당분간은 이조합으로 HD영화를 봐야겠다.
* VLC 최신버전은 UI도 괜찮아 졌더라....(http://videolan.org)


2007/07/19 - [Media/Open Project] - VLC 다운로드 경로와 매뉴얼 링크
신고

'Media Tech > H.264,VC-1,Codec' 카테고리의 다른 글

FFMPEG Rebuild  (0) 2009.12.09
Apple's Darwin Streaming Server On Fedora 10  (0) 2009.04.16
VLC 로 트랜스코딩하기  (0) 2009.02.11
MKV 포맷...  (3) 2008.09.22
Video codecs tutorial  (0) 2007.07.12
[본문 스크랩] ADPCM/PCM  (0) 2006.05.29

Comment +3

출저 : http://www.eetimes.com/news/latest/showArticle.jhtml?articleID=184417335&pgno=1
비디오 코덱 튜토리얼

오늘 서핑하다 재미있는 글을 발견해서 원본글은 출저 링크를 눌러보시라...

그런데 일단 영어의 압박이 있으니 그림만이라도 자세히 보자!!
시간날때 영어는 사전 펴가며 -.-


Figure 1: Chronological progression of ITU and MPEG standard [10]


Figure 2: Standard Motion Compensated Video Coding


Figure 3: An illustration of inter-frame prediction in I, P and B Frames


Figure 4: Effectiveness of basic techniques. 1) No MC; 2) Adding Skip mode to form a CR coder. Case 3) Allow only zero-valued MVs. 4) Allow integer-pel MC. 5) Allow half-pel MC 6) Allowing 4-MV; 7) Allowing quarter-pel MC. Refer to [7] for additional details


View full size
Figure 5: H.264 Block diagram and features [10]


View full size

Table 1: Key compression features in standard codecs


View full size

Table 2: Codecs typically used in standard applications and roadmap

신고

'Media Tech > H.264,VC-1,Codec' 카테고리의 다른 글

FFMPEG Rebuild  (0) 2009.12.09
Apple's Darwin Streaming Server On Fedora 10  (0) 2009.04.16
VLC 로 트랜스코딩하기  (0) 2009.02.11
MKV 포맷...  (3) 2008.09.22
Video codecs tutorial  (0) 2007.07.12
[본문 스크랩] ADPCM/PCM  (0) 2006.05.29

COMMENT :0

 원문 http://blog.naver.com/rubberdam/120024038505

간단하게...말해서

PCM:

입력된 아날로그 신호를 잡음이 없는 디지털 신호로 변환하는 데 사용되는 기법. 멀티미디어에서는 사운드를 디지털로 샘플링하는데 사용된다.

ADPCM:

멀티미디어에서 실제 값을 암호화하는 대신 연속적인 샘플간의 차이를 암호화시키는 이진 전파 압축 방식으로서, CD-ROM XA와 CD-I디스크에서 많이 사용하는 저장 기법이다

PCM

PCM은 아날로그 데이터 전송을 위한 디지털 설계이다. PCM 내의 신호들은 바이너리, 즉 논리 1(높음)과 논리 0(낮음)으로 표현되는 오직 두 가지 상태만이 가능하다. 아무리 복잡한 아날로그 파형이 있다해도 이것은 변하지 않는다. PCM을 사용하여 동영상 비디오, 음성, 음악, 원격측정, 그리고 가상 현실 등을 포함한 모든 형태의 아날로그 데이터를 디지털화하는 것이 가능하다.


통신 회로의 아날로그 파형으로부터 PCM을 취득하기 위해, 아날로그 신호의 진폭이 정기적으로 표본 추출된다. 표본 추출 비율 또는 초당 표본의 개수는 아날로그 파형의 최대 주파수의 수 배에 이른다. 각 추출 견본에서 아날로그 신호의 순간 진폭은 미리 결정된 등급, 즉 몇 개의 특유한 값과 가장 가깝도록 사사오입된다. 이 과정을 양자화라고 부른다. 등급의 숫자는 항상 2의 배수가 되는데, 예를 들어, 8, 16, 32, 또는 64 등이다. 이러한 숫자들은 3, 4, 5, 또는 6 개의 비트에 의해 각각 표현될 수 있다. 그래서, PCM의 출력은 일련의 2진수이며, 각각은 2 비트의 멱으로 표현된다.


통신회로의 수신측에서, PCM은 2진수를 다시 같은 양의 등급을 가지는 펄스로 변환한다. 이러한 펄스들은 원래의 아날로그 파형을 복원하기 위해 한층 더 처리된다.

ADPCM


1. 개요
  DPCM 방식의 성능 개선을 위해 음성 정보를 국부적으로 고정적인 상태로 취급할수 있는

 구간으로 분할해서 신호의 통계적 특성을 구한후, 그에 따른 적용 예측 방식과 적응 양자화

 방식을 적용한 것이 ADPCM 임


2. 정의

- ADPCM은 adaptive differential PCM의 약칭으로 정응 DPCM이라함
- DPCM의 적응 예측기와 DM의 적응 양자화기를 도입한 부호화기로 ITU-T에서  권고하는

  증속 부호기임
- 표준 PCM에서의 표본당 8비트 부호를 4비트 부호로 줄일수 있음


3. 양자화 계단 크기 결정법

1) 전방향 추정방식
- 양자화 계단크기의 값 계산을 양자화기 입력측에서 수행하며 송신기 부가정보로 그 크기도

  전송되어야 함
- 양자화 되지 않는 신호파의 표본값을 저장하 버퍼 필요
- 부호화 과정에서 처리 지연 발생


2) 후방향 추정방식
- 양자화 계단 크기의 값 계산을 양자화기 출력측에서 수행하므로 부가정보 전송이 불필요함
- 표본값 저장용 버퍼나 처리지연이 발생치 않음
- 예측로직에서는 양자화된 펄수값을 기초로 예측 계수들을 조절하며, 이 값에 의해 예측기의
  계수들은 최적의 상태 유지


4. 특징
- 과거신호의 샘플값들의 변화에 따라 스탭크기를 변화시킨 양자화기를 사용
- 음성신호의 특징을 이용하여 과거신호에 의한 예측값과 샘플링 값의 차이를 코딩
- 양자기와 예측기를 적용시켜 양자화 잡음 줄임
- PCM과 동일 이상의 음질을 유지하며 전송속도를 32K로 줄일수 있음
- PCM보다 구성이 복잡함

 

 

 



PCM (Pulse Code Modulation)

펄스부호변조방식. 레코드나 라디오의 음성은 음의 강약을 그대로 전류 의 강약으로 전달, 재생하는 애널로그 방식을 취하고 있다. 이에 대해 음의 강약을 1이나 0의 신호(1은 전류가 흐르고 0은 흐르지 않는)의 조합, 즉 디지털 신호로 변환해서 보내는 것이 PCM이다.

PCM신호를 생성하는 순서는 우선 아날로그신호를 양자화하여 PAM신호로 만든다음, 그 펄스의 디지털 레벨의 비트 수만큼 2진 코드열로 변환한다.

입력한 값을 그대로 기록하여 데이터 압축을 하지 않은 방식으로 용량이 크다.


ADPCM (Adaptive Differential Pulse Code Modulation)

표본화 된 신호의 차이를 저장하는 방식 .

음성 신호 부호화 방식의 하나. 표준적인 펄스 부호 변조(PCM)에 의한 디지털 신호의 비트 수(64kbps)를 낮추어 줄이기 위한 방법의 하나이다. 음성 대역을 2분할하여 그 각각을 적응 차분 펄스 부호 변조(ADPCM)에 의해 부호화하는 32kbps 방식에서는, 각 부대역을 4비트로 양자화하여 4kHz로 표본화한다. 16kbps 방식에서는 저역의 부대역을 3비트, 고역의 부대역을 2비트로 양자화하여 각각을 3kHz, 2kHz로 표본화한다

기본적으로 PCM 방법으로 기록한 것과 내용이 같으나 데이터 압축에 의한 값을 기록하므로 최대 4:1 까지 압축이 가능하다.


 

 

ADPCM

ADPCM은 음향의 빈번한 표본을 취하고 추출된 음향 변조 값을 이진 형태로 표현함으로써 음향이나 아날로그 정보를 이진 정보로 변환시키기 위한 기술이다. ADPCM은 CD-ROM 상에 텍스트, 이미지, 코드 등과 함께 음향을 저장하는데 사용될 뿐 아니라, 장거리 광케이블을 통해 음향을 전송하는 데에도 사용된다.


ADPCM:

DPCM 방식의 성능 개선을 위해 음성 정보를 국부적으로 고정적인 상태로 취급할수 있는 구간으로 분할해서 신호의 통계적 특성을 구한후, 그에 따른 적용 예측 방식과 적응 양자화 방식을 적용한 것이 ADPCM 이다. 과거신호의 샘플값들의 변화에 따라 스탭크기를 변화시킨 양자화기를 사용한다.

- 음성신호의 특징을 이용하여 과거신호에 의한 예측값과 샘플링 값의 차이를 코딩

- 양자기와 예측기를 적용시켜 양자화 잡음 줄임

- PCM과 동일 이상의 음질을 유지하며 전송속도를 32K로 줄일수 있음

- PCM보다 구성이 복잡함




PCM:

연속적으로 변화하는 아날로그 데이터 신호의 진폭을 비트 단위로 샘플링하여 디지털 신호로 변조하는 방식.

-제한된 디지털의 크기로 연속된 신호를 정확하게 표현한다는 것은 매우 어렵고 제한된 크기의 디지털 신호에 따라 오차 값이 발생하는데 이를 정량화 잡음, 양자화 잡음이라고 한다. 이런 정량화 잡음은 디지털 데이터의 비트수가 클수록 크기가 감소하며, 비트 수가 작을수록 정량화 잡음이 커지게 된다.

신고

'Media Tech > H.264,VC-1,Codec' 카테고리의 다른 글

FFMPEG Rebuild  (0) 2009.12.09
Apple's Darwin Streaming Server On Fedora 10  (0) 2009.04.16
VLC 로 트랜스코딩하기  (0) 2009.02.11
MKV 포맷...  (3) 2008.09.22
Video codecs tutorial  (0) 2007.07.12
[본문 스크랩] ADPCM/PCM  (0) 2006.05.29

COMMENT :0

티스토리 툴바