Transcoder


Wprowadzenie

Transcoder jest listenerem opartym o popularny koder/dekoder FFMPEG i służy do transkodowania plików multimedialnych do innych formatów/kodeków/rozmiarów. Zasada działania transcodera polega na nasłuchiwaniu zawartości wybranego katalogu na serwerze i transkodowaniu do wybranego formatu wszystkich filmów/ścieżek dźwiękowych, które się pojawią w danym katalogu. Nowo utworzone (transkodowane) pliki multimedialne są przenoszone do wskazanego katalogu, a plik oryginalny trafia do innego katalogu, również wskazanego.
FFMPEG nie musi być dodatkowo instalowany na serwerze, ponieważ Transcoder zawiera w sobie tę aplikację.
Transcoder może być uruchomiony poprzez zdefiniowanie go w instancji, lub ręcznie z linii komend konsoli.

Konfiguracja

Jeżeli chcemy uruchomić transkoder jako listener instancji, musimy w jej konfiguracji dodać poniższy wpis:

 

        <listener name="Transcoder">
<class>jpalio.dtp.transcode.Transcoder</class>
<sourceDir>/home/movie/source/</sourceDir>
<wrongDir>/home/movie/wrong/</wrongDir>
<workDir>/home/movie/work/</workDir>
<targetDir>/home/movie/target/</targetDir>
<proxyDir>/home/movie/proxy/</proxyDir>
<loggerFile>/home/movie/transcoder.log</loggerFile>
<connector>palio</connector>
<extension>.flv</extension>
<fileFormat>flv</fileFormat>
<audioCodec>libmp3lame</audioCodec>
<audioBitrate>32000</audioBitrate>
<audioSamplingRate>22050</audioSamplingRate>
<videoBitrate>500000</videoBitrate>
<videoCodec>flv</videoCodec>
<videoSize>100%</videoSize>
<saveResultInDb>true</saveResultInDb>
<waitForFiles>true</waitForFiles>
</listener>

 

Jeżeli natomiast chcemy uruchomić Transcoder z linii komend musimy uruchomić go w sposób:

 

 java -cp /path/to/jpalio/lib/*.jar;dtp-jave.jar jpalio.dtp.transcode.Transcoder sourceDir=/home/movie/source/ wrongDir=/home/movie/wrong/ workDir=/home/movie/work/ targetDir=/home/movie/target/ proxyDir=/home/movie/proxy/ loggerFile=/home/movie/transcoder.log extension=.flv fileFormat=flv audioCodec=libmp3lame audioBitrate=32000 audioSamplingRate=22050 videoBitrate=500000 videoCodec=flv videoSize=100 waitForFiles=true

 

 

Powyższe ustawienia znaczą dokładnie:

 

Podczas uruchamiania Transcodera z linii komend nie mamy dostępu do uruchomionej instancji jPalio. Tak więc automatycznie parametr saveResultInDb jest ustawiony na false i nawet gdy go ręcznie ustawimy na true, to i tak zostanie on pominięty. Podobnie nastąpi z parametrem connector.

Formaty plików

Format pliku to nic innego jak sposób zapisu zakodowanego strumienia audio i video w pliku. Format pliku to nie jest kodek (algorytm) użyty do enkodowania.
Transcoder wspiera formaty plików wymienione poniżej.
D oznacza, że format jest wspierany podczas dekodowania.
E oznacza, że format jest wspierany podczas enkodowania.

  E 3g2             3gp2 format
E 3gp 3gp format
D 4xm 4X Technologies format
D MTV MTV format
DE RoQ Id RoQ format
D aac ADTS AAC
DE ac3 raw ac3
E adts ADTS AAC
DE aiff Audio IFF
DE alaw pcm A law format
DE amr 3gpp amr file format
D apc CRYO APC format
D ape Monkey's Audio
DE asf asf format
E asf_stream asf format
DE au SUN AU Format
DE avi avi format
D avs AVISynth
D bethsoftvid Bethesda Softworks 'Daggerfall' VID format
D c93 Interplay C93
E crc crc testing format
D daud D-Cinema audio format
D dsicin Delphine Software International CIN format
D dts raw dts
DE dv DV video format
E dvd MPEG2 PS format (DVD VOB)
D dxa dxa
D ea Electronic Arts Multimedia Format
D ea_cdata Electronic Arts cdata
DE ffm ffm format
D film_cpk Sega FILM/CPK format
DE flac raw flac
D flic FLI/FLC/FLX animation format
DE flv flv format
E framecrc framecrc testing format
DE gif GIF Animation
DE gxf GXF format
DE h261 raw h261
DE h263 raw h263
DE h264 raw H264 video format
D idcin Id CIN format
DE image2 image2 sequence
DE image2pipe piped image2 sequence
D ingenient Ingenient MJPEG
D ipmovie Interplay MVE format
DE libnut nut format
DE m4v raw MPEG4 video format
DE matroska Matroska File Format
DE mjpeg MJPEG video
D mm American Laser Games MM format
DE mmf mmf format
E mov mov format
D mov,mp4,m4a,3gp,3g2,mj2 QuickTime/MPEG4/Motion JPEG 2000 format
E mp2 MPEG audio layer 2
DE mp3 MPEG audio layer 3
E mp4 mp4 format
D mpc musepack
D mpc8 musepack8
DE mpeg MPEG1 System format
E mpeg1video MPEG video
E mpeg2video MPEG2 video
DE mpegts MPEG2 transport stream format
D mpegtsraw MPEG2 raw transport stream format
D mpegvideo MPEG video
E mpjpeg Mime multipart JPEG format
DE mulaw pcm mu law format
D mxf MXF format
D nsv NullSoft Video format
E null null video format
DE nut nut format
D nuv NuppelVideo format
DE ogg Ogg format
E psp psp mp4 format
D psxstr Sony Playstation STR format
DE rawvideo raw video format
D redir Redirector format
DE rm rm format
E rtp RTP output format
D rtsp RTSP input format
DE s16be pcm signed 16 bit big endian format
DE s16le pcm signed 16 bit little endian format
DE s8 pcm signed 8 bit format
D sdp SDP
D shn raw shorten
D siff Beam Software SIFF
D smk Smacker Video
D sol Sierra SOL Format
E svcd MPEG2 PS format (VOB)
DE swf Flash format
D thp THP
D tiertexseq Tiertex Limited SEQ format
D tta true-audio
D txd txd format
DE u16be pcm unsigned 16 bit big endian format
DE u16le pcm unsigned 16 bit little endian format
DE u8 pcm unsigned 8 bit format
D vc1 raw vc1
E vcd MPEG1 System format (VCD)
D vmd Sierra VMD format
E vob MPEG2 PS format (VOB)
DE voc Creative Voice File format
DE wav wav format
D wc3movie Wing Commander III movie format
D wsaud Westwood Studios audio format
D wsvqa Westwood Studios VQA format
D wv WavPack
DE yuv4mpegpipe YUV4MPEG pipe format

Kodeki

Kodek jest algorytmem użytym to kodowania (zmniejszenia rozmiaru) strumienia audio lub video.
Transkoder wspiera poniższe kodeki.
D - możliwe dekodowanie
E - możliwe enkodowanie
A - kodek audio
V - kodek video

 D V    4xm
D V D 8bps
D V VMware video
D V D aasc
EA ac3
D A adpcm_4xm
DEA adpcm_adx
D A adpcm_ct
D A adpcm_ea
D A adpcm_ea_r1
D A adpcm_ea_r2
D A adpcm_ea_r3
D A adpcm_ea_xas
D A adpcm_ima_amv
D A adpcm_ima_dk3
D A adpcm_ima_dk4
D A adpcm_ima_ea_eacs
D A adpcm_ima_ea_sead
D A adpcm_ima_qt
D A adpcm_ima_smjpeg
DEA adpcm_ima_wav
D A adpcm_ima_ws
DEA adpcm_ms
D A adpcm_sbpro_2
D A adpcm_sbpro_3
D A adpcm_sbpro_4
DEA adpcm_swf
D A adpcm_thp
D A adpcm_xa
DEA adpcm_yamaha
D A alac
D V amv
D A ape
DEV D asv1
DEV D asv2
D A atrac 3
D V D avs
D V bethsoftvid
DEV bmp
D V D c93
D V D camstudio
D V D camtasia
D V D cavs
D V D cinepak
D V D cljr
D A cook
D V D cyuv
D A dca
DEV D dnxhd
D A dsicinaudio
D V D dsicinvideo
DES dvbsub
DES dvdsub
DEV D dvvideo
D V dxa
DEV D ffv1
DEVSD ffvhuff
DEA flac
DEV D flashsv
D V D flic
DEVSD flv
D V D fraps
DEA g726
DEV gif
DEV D h261
DEVSDT h263
D VSD h263i
EV h263p
D V DT h264
DEVSD huffyuv
D V D idcinvideo
D A imc
D V D indeo2
D V indeo3
D A interplay_dpcm
D V D interplayvideo
DEV D jpegls
D V kmvc
D A liba52
DEA libamr_nb
DEA libamr_wb
EA libfaac
D A libfaad
DEA libgsm
DEA libgsm_ms
EA libmp3lame
EV libtheora
EA libvorbis
EV libx264
EV libxvid
EV ljpeg
D V D loco
D A mace3
D A mace6
D V D mdec
DEV D mjpeg
D V D mjpegb
D V D mmvideo
DEA mp2
D A mp3
D A mp3adu
D A mp3on4
D A mpc sv7
D A mpc sv8
DEVSDT mpeg1video
DEVSDT mpeg2video
DEVSDT mpeg4
D A mpeg4aac
D VSDT mpegvideo
DEVSD msmpeg4
DEVSD msmpeg4v1
DEVSD msmpeg4v2
D V D msrle
D V D msvideo1
D V D mszh
D A nellymoser
D V D nuv
DEV pam
DEV pbm
DEA pcm_alaw
DEA pcm_mulaw
DEA pcm_s16be
DEA pcm_s16le
D A pcm_s16le_planar
DEA pcm_s24be
DEA pcm_s24daud
DEA pcm_s24le
DEA pcm_s32be
DEA pcm_s32le
DEA pcm_s8
DEA pcm_u16be
DEA pcm_u16le
DEA pcm_u24be
DEA pcm_u24le
DEA pcm_u32be
DEA pcm_u32le
DEA pcm_u8
DEA pcm_zork
DEV pgm
DEV pgmyuv
DEV png
DEV ppm
D V ptx
D A qdm2
D V D qdraw
D V D qpeg
DEV D qtrle
DEV rawvideo
D A real_144
D A real_288
DEA roq_dpcm
DEV D roqvideo
D V D rpza
DEV D rv10
DEV D rv20
DEV sgi
D A shorten
D A smackaud
D V smackvid
D V D smc
DEV snow
D A sol_dpcm
DEA sonic
EA sonicls
D V D sp5x
DEV D svq1
D VSD svq3
DEV targa
D V theora
D V D thp
D V D tiertexseqvideo
DEV tiff
D V D truemotion1
D V D truemotion2
D A truespeech
D A tta
D V txd
D V D ultimotion
D V vb
D V vc1
D V D vcr1
D A vmdaudio
D V D vmdvideo
DEA vorbis
D V vp3
D V D vp5
D V D vp6
D V D vp6a
D V D vp6f
D V D vqavideo
D A wavpack
DEA wmav1
DEA wmav2
DEVSD wmv1
DEVSD wmv2
D V wmv3
D V D wnv1
D A ws_snd1
D A xan_dpcm
D V D xan_wc3
D V D xl
D S xsub
DEV D zlib
DEV zmbv