Difference between revisions of "Encoding from command line"
Line 281: | Line 281: | ||
video_directory/ # for clip in ls ./*.* ; do ffmpeg -y -i "$clip" -acodec mp3 -f flv /scratch/`echo "$clip"|sed -e s@' '@'_'@g`; done | video_directory/ # for clip in ls ./*.* ; do ffmpeg -y -i "$clip" -acodec mp3 -f flv /scratch/`echo "$clip"|sed -e s@' '@'_'@g`; done | ||
=== mp3 === | |||
==== all aiff in a directory to mp3 ==== | |||
for file in *.aiff ; do ffmpeg -i "$file" -f mp3 -ab 320000 -ar 48000 "$file.mp3" ; done | |||
rename s/.aif.mp3/.mp3/ *.aif.mp3 | |||
---- | ---- |
Revision as of 10:21, 25 April 2010
elwood _musicali # for a in ls ./*.* ; do ffmpeg -y -i "$a" -acodec mp3 -f flv /scratch/`echo "$a"|sed -e s@' '@'_'@g`; done
Quick commands to Encode/Decode Multimedia files
DVD
Rip DVD to DivX
- count dvd titles, this example is using 8 of them:
- audio:
mencoder dvd://1 -ovc frameno -o frameno.avi -oac mp3lame -lameopts vbr=3 -alang es -chapter 1-8
- video.
- last command output will suggest a vbitrate=xxx value:
mencoder dvd://1 -ovc lavc -lavcopts vcodec=mpeg4:vhq:v4mv:vbitrate=1000:vpass=1 -oac copy -o movie.avi -chapter 1-8 mencoder dvd://1 -ovc lavc -lavcopts vcodec=mpeg4:vhq:v4mv:vbitrate=1000:vpass=2 -oac copy -o movie.avi -chapter 1-8
- divx will be movie.avi.
Rip DVD generic
modo I
mencoder /dev/dvd-hdd -o CINEMA_STRANGE.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4
modo II ~15 Min.
mencoder dvd://1 -ovc frameno -o frameno.avi -oac mp3lame -lameopts vbr=3 -alang es -chapter 1-8
~100 Min.
mencoder dvd://1 -ovc lavc -lavcopts vcodec=mpeg4:vhq:v4mv:vbitrate=1130:vpass=1 -oac copy -o movie.avi -chapter 1-8 mencoder dvd://1 -ovc lavc -lavcopts vcodec=mpeg4:vhq:v4mv:vbitrate=1130:vpass=2 -oac copy -o movie.avi -chapter 1-8
DVD 4:3
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576 \ -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video -ofps 25 \ -o /fileout.mpg /filein.avi
PAL Widescreen
mencoder -of mpeg -mpegopts format=dvd:vaspect=16/9:vframerate=25 -srate 48000 \ -ofps 25 -ovc lavc -oac lavc -lavcopts \ codec=mpeg2video:vrc_buf_size=1835:keyint=15:vrc_maxrate=9800:vbitrate=4900:aspect=16/9:acodec=ac3:abitrate=192 \ -o /fileout.mpeg2 /filein.mpg
PAL Fullscreen
mencoder -of mpeg -mpegopts format=dvd:vaspect=4/3:vframerate=25 -srate 48000 \ -ofps 25 -ovc lavc -oac lavc -lavcopts \ codec=mpeg2video:vrc_buf_size=1835:keyint=15:vrc_maxrate=9800:vbitrate=4900:aspect=4/3:acodec=ac3:abitrate=192 \ -o /fileout.mpeg2 /filein.mpg
Encode DVD title #2, only selected chapters:
mencoder dvd://2 -chapter 10-15 -o title2.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4
Encode DVD title #2, resizing to 640x480:
mencoder dvd://2 -vf scale=640:480 -o title2.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4
Encode DVD title #2, resizing to 512xHHH (keep aspect ratio):
mencoder dvd://2 -vf scale -zoom -xy 512 -o title2.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4
The same, but with bitrate set to 1800kbit and optimized macroblocks:
mencoder dvd://2 -o title2.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=1:vbitrate=1800
The same, but with MJPEG compression:
mencoder dvd://2 -o title2.avi -oac copy -ovc lavc -lavcopts vcodec=mjpeg:mbd=1:vbitrate=1800
Filters
Scale
mencoder video.mpg -oav copy -ovc copy -vf scale=120:100 -o scaled.mpg
Crop
mplayer -vf crop=470:350:5:100 "$fileee"
==== tagliare un video dal secondo minuto (120) fino a 20 secondi dopo
mencoder -ss 120 -endpos 15 video.avi -o video_tagliato.avi -ovc lavc
Tagliare solo i primi 30 min (1800 sec.)
mencoder -endpos 1800 rec-CUATRO-20070213-01:30.avi -o /mirror160/_video/__Temp/rec-CUATRO-20070213-01:30_tagliato.avi -ovc copy -oac copy
Television/Camera
Registrare dal DVB (Digital Video Broadcasting)
- Satellite o digitale terrestre.
mencoder dvb://CUATRO -ovc copy -oac copy -o Film.avi
Non ricordo...
mplayer -vo mpegpes -ao mpegpes -vop lavc=5000:25,expand=688:576:-1:-1:1,scale=688:563 -cache 8192 -slave -nolirc -subpos 80 -sub-bg-color 0 -sub-bg-alpha 255 -quiet
Guardo la webcam con mplayer
mplayer tv:// -tv driver=v4l:width=640:height=480:outfmt=rgb24:device=/dev/video0:noaudio -flip
Registro la webcam con mencoder...
mencoder tv:// -tv driver=v4l:width=640:height=480:outfmt=rgb24:device=/dev/video0:noaudio -flip -o camed.avi -ovc lavc
Oppure
mencoder tv:// -tv driver=v4l:width=320:height=240:fps=15:outfmt=rgb24:device=/dev/video0:alsa:forceaudio -flip -ofps 11.44 -ovc lavc -lavcopts vcodec=rv10 -oac pcm -noskip -o prova.avi
Images...
cacciare un frame con ffmpeg verso jpg - estrazione 1° frame in jpg
estrarre il 1° frame
ffmpeg -i <file sorgente> -ss 00:00:00 -t 0.04 -f mjpeg <outputfile.jpg>
Generate gif89a (-gif animation) mplayer from a video
mplayer mov03331.mpg -loop 0 -vo gif89a:fps=15.0:output=caffe1.gif
Network
Save a stream
mplayer http://mplayer.hq/example.avi -dumpstream -dumpfile dumpato.avi
Grabando ,cortando y comprimiendo un stream de tv3
mplayer "mms://directe.3alacarta.tvcatalunya.com/reflector:60738?auth=db.bWbEd.dWc5b.asaRazb4daaCcmcPdfaU-bgZTm9-8-vga-KFlmE-r8qcl7ram6o6phj6rgmllkpjp7r7j9l9r8q7l6ramapkqkkjr9mllkpjqksikmmnslrimjsGnwpkqkkjsImqlo&aifp=fhgt&WMCache=0" -dumpstream -dumpfile dumpato.avi
mencoder -ss 826.5 dumpato.avi -o dumpato_tagliato.avi -ovc copy -oac copy mencoder -endpos 108 dumpato_tagliato.avi -o dumpato_montato.avi
mencoder dumpato_montato.avi -o dumpato_copresv.avi -oac copy -ovc lavc -of mpeg -lavcopts vcodec=mpeg2video -ofps 1
Fare il dumpo di un stream (TV da internet per esempio) in XVID
mencoder mms://sream -ovc xvid -xvidencopts bitrate=1150 -vf scale=640:480 -oac mp3lame -o fileout.avi
...In DV
mencoder timegousbyconloli.avi -ovc libdv -vf scale=720:576 -oac pcm -o timegousbyconlolippp.avi
Ascoltare l'audio di mplayer in un host remoto: Vedi ESOUND
- faccio partire il server audio di rete su elwood:
[xunil@elwood ~]$ esd -tcp -port 9876 -public & [1] 3849 - accepting connections on port 9876
- Apro il video (uno stream in questo caso) specificando host e porta del server audio
[xunil@zombie ~]$ mplayer -ao esd:elwood:9876 mms://rntlivewm.rai.it/_rn24_live_
- così vedo il vido su zombie e sento l'audio su elwood, cioè vedo dalla cucina e sento dalla camera da letto, non proprio comodo:
- allora trorno in camera, da elwood, e faccio:
[xunil@elwood ~]$ ssh -X zombie mplayer -ao esd:elwood:9876 mms://rntlivewm.rai.it/_rn24_live_
- adesso la situazione è strana, una persona normale, sana non noterebbe differenza tra "fare doppio click" sul video o
Mandare l'audio su un altro host (elwood)
mplayer -ao esd:elwood:9876 r24-24luglio.avi
Motion JPEG audio PCM
il "2> /dev/null" serve per 'buttare' lo standard error, nel caso qualcosa non funzioni, rimuoverlo dal comando.
mencoder video.avi -oac pcm -ovc lavc -lavcopts vcodec=mjpeg -o MJPEG_video.avi 2> /dev/null
Motion PNG (MPNG)
mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o output.avi
Motion TGA (MTGA)
mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o output.avi
Theora
Convert TO theora
- Examples: (from ffmpeg2theora help)
ffmpeg2theora videoclip.avi (will write output to videoclip.ogv)
ffmpeg2theora videoclip.avi --subtitles subtitles.srt (same, with subtitles)
cat something.dv | ffmpeg2theora -f dv -o output.ogv -
- Encode a series of images:
ffmpeg2theora frame%06d.png -o output.ogv
- Live streaming from V4L Device:
ffmpeg2theora /dev/video0 -f video4linux --inputfps 15 -x 160 -y 128 -o - \ | oggfwd icast2server 8000 password /theora.ogv
- Live encoding from a DV camcorder (needs a fast machine):
dvgrab - | ffmpeg2theora -f dv -x 352 -y 288 -o output.ogv -
- Live encoding and streaming to icecast server:
dvgrab --format raw - \ | ffmpeg2theora -f dv -x 160 -y 128 -o /dev/stdout - \ | oggfwd icast2server 8000 password /theora.ogv
Informazioni mandando in Play da MPLAYER
Eseguendo il comando che segue , le opzioni '-v -identify' ci posso dare delle informazioni molto utili del video che mandiamo in PLAY:
mplayer -v -identify -aspect 4:3 /root/Desktop/Prova03.avi
EXAMPLES OF MENCODER USAGE (from ~$ man mencoder)
- Encode all *.jpg files in the current directory:
mencoder "mf://*.jpg" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4
- Encode from a tuner (specify a format with -vf format):
mencoder -tv driver=v4l:width=640:height=480 tv:// -o tv.avi -ovc rawnuv
MPEG2 M2S MPEGII
http://www.mplayerhq.hu/DOCS/HTML/en/index.html http://forum.doom9.org/archive/index.php/t-110761.html
- mencoder
OPZIONI DEMUXER/FLUSSO (STREAM)
-pvr <opzione1:opzione2:...> (solo PVR) Questa opzione imposta varie proprietà di codifica per il modulo di cattura PVR. Deve essere usata con schede di codifica MPEG via hardware supp- portate dal driver V4L2. Le schede Hauppauge WinTV PVR-150/250/350/500 e tutte quelle basate su IVTV sono conosciute come schede di cattura PVR. Attenzione che solamente il kernel Linux 2.6.18 o maggiore è capace di gestire il flusso MPEG attraverso lo strato V4L2. Per la cattura hardware di un flusso MPEG e la visione attraverso MPlayer/MEncoder, usa ’pvr://’ come URL del filmato.
fmt=<valore> Seleziona un formato MPEG per la codifica: ps: MPEG-2 Program Stream (default) ts: MPEG-2 Transport Stream mpeg1: MPEG-1 System Stream vcd: flusso compatibile Video CD svcd: flusso compatibile Super Video CD dvd: flusso compatibile DVD
TS (Transport Stream)
mencoder -of lavf -lavfopts format=mpegts \ -lavcopts vcodec=mpeg2video:acodec=mp2:abitrate=224:vbitrate=3200 -o test2_mpegts_1109.m2t \ -ovc lavc -oac lavc /export/data/mediaroot/video/mid/1109.mp4
PES (Packetized Elementary Stream)
DV
From Mpeg DVD (vob)
ffmpeg -i /mnt/win/linux/dvd_da_convertire/kidd-pivot-01.MPG -target dv /media/LACIE/temp/kidd-pivot-01.dv
3pg Mobile Phones
- Nokia XpressMusic, display:320x240
mpeg4 libamr_nb
ffmpeg -i "$video" -s 320x240 -r 14.99 -vcodec mpeg4 -ac 1 -ar 8000 -acodec libamr_nb -b 80k -ab 10.2k -y $out
mpeg4 libamr_wb (va a scatti l'audio)
ffmpeg -i "$video" -s 320x240 -r 14.99 -vcodec mpeg4 -ac 1 -ar 8000 -acodec libamr_nb -b 224k -ab 12.2k
mpeg4 libamr_wb (va a scatti l'audio)
ffmpeg -i "$video" -s 320x240 -r 14.99 -vcodec mpeg4 -ac 1 -ar 16000 -acodec libamr_wb -b 100k -ab 18.25k -y
ffmpeg -i "$video" -s 320x240 -r 14.99 -vcodec mpeg4 -ac 1 -ar 16000 -acodec libamr_wb -b 80k -ab 12.65k -y
h263p mp3 (non letto da cell Nokia per via dell'audio mp3)
ffmpeg -i "$video" -s qcif -r 20 -vcodec h263p -acodec mp3 -ar 22050 -b 128k -ab 32k -y $out
H.264 (x264)
http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-x264.html
http://en.wikipedia.org/wiki/X264
http://en.wikipedia.org/wiki/H.264
Very high quality
subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid:weight_b 6fps 0dB
High quality
subq=5:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b 13fps -0.89dB
Fast
subq=4:bframes=2:b_pyramid:weight_b 17fps -1.48dB
mencoder -v -o video.264
level_idc=41:bframes=3:frameref=2:nopsnr:nossim:pass=1:threads=auto
mencoder $ifile -of avi -vf scale=352:288 -ovc x264 -x264encopts bitrate=1000:subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid:weight_b:threads=auto -o Desktop/test2641.avi mencoder $ifile -of avi -ovc x264 -x264encopts bitrate=3000:subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid:weight_b:threads=auto -o Desktop/test2641.avi
mencoder $ifile -of avi -ovc x264 -x264encopts bitrate=500:subq=5:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b:threads=auto -o Desktop/test2641.avi
AVID
ffmpeg -i ../hi/1906.dv -vcodec libx264 -b 4096000 -t 10 -subq 6 -acodec libfaac -ar 48000 -ab 128000 -ac 2 -f mp4 1906_ffmpeg_Afaac_Vx264.mp4 ffmpeg -i ../hi/1906.dv -vcodec libx264 -b 4096000 -t 10 -subq 6 -acodec libfaac -ac 2 -f mp4 1906_ffmpeg_Afaac_Vx264.mp4
Working with PIPEs
- esempio da omf file di avid
mkfifo videopipe
Aprire nuova shell:
cat videopipe | ffmpeg -i - -target dv output.dv
Toranre alla vecchia shell:
mencoder <filevideo.omf> -ovc copy -oac pcm -o videopipe
Quando i due hanno terminato il play e l'encoding:
unlink videopipe
- reccare e encodare DV
dvgrab --autosplit --format raw -|ffmpeg -f dv -i - -target vcd f.mpg
- Encode from a pipe:
rar p test-SVCD.rar | mencoder -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=800 -ofps 24 -
Flash FLV
encode in flv (avi to flv) (mpg to flv) ffmpeg
ffmpeg -y -i dumpato2.avi -acodec mp3 -f flv dumpato2.flv
video_directory/ # for clip in ls ./*.* ; do ffmpeg -y -i "$clip" -acodec mp3 -f flv /scratch/`echo "$clip"|sed -e s@' '@'_'@g`; done
mp3
all aiff in a directory to mp3
for file in *.aiff ; do ffmpeg -i "$file" -f mp3 -ab 320000 -ar 48000 "$file.mp3" ; done rename s/.aif.mp3/.mp3/ *.aif.mp3
Problem -> Solution
Encoding
- convertendo in x264 con RedHat 5.2 il video in uscita risulta corrotto
- is the x264 library that updatig casuses the problem