Transcodarea audio și video

Care este cel mai bun mod de a transcoda audio și video pentru a fi afișate pe web?

Trebuie să o fac programat. Aș dori să fac ceva de genul YouTube sau Google Video unde utilizatorii pot încărca orice format doriți și îl codific în flv, mp3 și / sau mp4. Am putut face acest lucru pe serverul nostru, dar aș prefera să folosesc o instanță EC2 sau chiar un serviciu web. Avem un server Windows 2008.

0
fr hi bn

7 răspunsuri

ffmpeg o poate face, un instrument de linie de comandă care utilizează libavcodec. Poate gestiona conversia majorității formatelor video. Licența sa este LPGL, dacă se potrivește nevoilor dvs. Puteți să-l utiliza ca un proces separat programatic, sau dacă vă simțiți hardcore, puteți utiliza biblioteca libavcodec-te pentru a codifica în mod direct.

0
adăugat

Fiți conștienți de faptul că anumite părți ale ffmpeg sunt sub GPL. Cred că modulul libpostproc este și dacă îmi amintesc corect, acest lucru este folosit în transcodarea. Asigurați-vă că această licență este compatibilă cu ceea ce faceți.

0
adăugat
@mouviciel, ai dreptate: cea mai mare parte a FFMPEG este sub LGPL dar există câteva componente sub GPL. Întrebarea se referă la una dintre domeniile pe care cred că le-ar cere GPL.
adăugat autor denis phillips, sursa
GPL este perfect acceptabil dacă rulează pe propriul server. Numai chestii Affero GPL ar putea fi problematice.
adăugat autor TRiG, sursa
De fapt, partile GPL ale ffmpeg sunt opționale și sunt incluse numai dacă executați ./configure cu opțiunea --enable-gpl.
adăugat autor mouviciel, sursa

M-aș uita la SDK Reference Concept's SDK:

http://www.mainconcept.com/site/developer-products-6/pc-based-sdks-20974/reference-sdk-21221/information-21243.html

Este construit pentru transcodare și, deoarece este un SDK licențiat, nu are niciunul dintre aspectele legale legate de ffmpeg / libavcodec.

0
adăugat

Rhozet Carbon Coder can handle a wide range of formats plus you can use plugins to alter the video (eg add a watermark)

0
adăugat

Când doriți să transcodați la Flv (care este probabil cel mai bun pentru web), atunci folosesc această linie:

ffmpeg -hq -y -i $directory/$file -r 20 -s 300x200 -deinterlace -ar 22050 $directory/$file.flv 1>/dev/null 2>/dev/null

Funcționează foarte bine, sub linux, desigur :-).

0
adăugat

Dacă sunteți în căutarea unor materiale GPL:

Pentru mutarea audio, încercați sox. Foarte puternic! E mult! Este inclus în majoritatea distribuțiilor linux.

Există, de asemenea, faimosul LAME pentru codarea mp3 [audio].

Pentru video, mencoder este impresionant! Face parte din pachetul mplayer . Se va ocupa de conversiile din majoritatea formatelor video. Mult mai mult decât am visat vreodată a existat. (Pentru documentație, consultați Capitolul 9. Utilizarea de bază a MEncoder și < a href = "http://www.mplayerhq.hu/DOCS/HTML/en/encoding-guide.html" rel = "nofollow noreferrer"> Capitolul 10. Codarea cu MEncoder .)

Este ceva mai limitat cu privire la ceea ce poate crea. Dar nu acceptă mpeg4 , mpeg2 , dvd-mpeg , flv și multe altele. (În timp ce eu nu am încercat eu înșiși flv , Google arată că alți oameni o folosesc.)

I have done things like jpeg + sound -> mpeg4 movie:

nice +20 $MENCODER mf://${JPEGFILE}  -mf w=720:h=480:fps=1/${SOUNDLENGTH}:type=jpeg -audiofile ${SOUNDFILE} -ovc lavc -oac lavc -lavcopts vcodec=mpeg4 -ofps 30000/1001 -o ${MENU_MPG}

Sau transcodare video formatat arbitrar la dvd-compatibil MPEG:

nice +20 $MENCODER -edl ${EDL} -ovc lavc -oac lavc -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=${VBITRATE}:keyint=18:acodec=ac3:abitrate=192:aspect=4/3:trell:mbd=2:dia=4:cmp=3:precmp=3:ildctcmp=3:subcmp=3:mbcmp=3:cbp:mv0:dc=10 -of mpeg -mpegopts format=dvd -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 -ofps 30000/1001 -o ./${INFILE}.reformatted  ${FILEPATH}

-edl / -edlout [Editare liste de decizii] sunt folosite pentru a elimina doar secțiunile video pe care le doresc.

$ {VBITRATE} este de obicei 5000 pentru DVD-mpeg-video. Dar dacă o faci un pic poți stoarce mai mult video pe un DVD. Presupunând că puteți tolera artefactele.

scară = 720: 480, harddup - Problemă mică cu scala greșită pentru dvdplayer-ul meu și harddup pentru a rezolva o problemă de dezinfecție audio-video pe playerul meu "cheapo" .

(Pentru a reda pe un player cu ecran lat care nu ar ocupa de 4x3 video, am folosit atrocități ca "aspect = 16/9" , "- vf scale = 560: 720: 480, harddup ". Dar, în general, nu doriți să pierdeți biți care codifică bare negre.)

Acesta nu este cel mai eficient set de opțiuni de mencoder de departe! Poate fi nevoie de timp pentru a alerga. Dar am avut în minte alte obiective ...

0
adăugat

Vă recomandăm cu tărie ffmpeg. Pe Windows, am găsit acest site pentru a găzdui binare bune.

0
adăugat