ffmpeg, mencoder e mplayer: audio e video tips

La lista che segue rappresenta un mio primo tentativo di raccolta dei giochini che si possono fare con ffmpeg, mencoder e mplayer per la trattazione dei video, immagini e webcam su sistemi unix.

Li ho testati tutti su gentoo linux, quasi superfluo dire che su questa distro dovete avere installati ffmpeg e mplayer (per le USE flags ad ognuno le sue…).

Mi lascio la libertà di aggiungere qualche punto ogni qualvolta lo riterrò più necessario.

Spero possa essere utile anche a voi.

Aspetto consigli per le aggiunte nei commenti.

Editing.

  • merge two video
    mencoder -oac copy -ovc copy input1.avi input2.avi -o output.avi
  • merge audio video
    mencoder -audiofile audio.aac video.mp4 -oac copy -ovc copy -o output.mp4
    
    ffmpeg -i audio.aac -i video.mp4 -acodec copy -vcodec copy output.mp4
  • audio extract
    mplayer -dumpaudio input.avi -dumpfile output.mp3
    
    ffmpeg -i input.avi -ab 128k output.aac
  • cut video
    mencoder -ss 01:00:00 -endpos 01:00:00 -ovc copy -oac copy input.avi -o output.avi
    
    ffmpeg -i input.vob -ss 00:01:00 -t 00:01:00 -sameq output.avi

Webcam

  • capture image
    mplayer -tv fps=5:driver=v4l2:width=640:height=480:device=/dev/video0 -frames 10 -vo png tv://
    
    ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -vframes 1  -vc png -y -f image2 frames.png
  • capture when you want
    mkfifo /tmp/test.fifo
    mplayer -slave -quiet -input file=/tmp/test.fifo -vf screenshot -tv driver=v4l2 tv://
    
    echo "screenshot 0" >/tmp/test.fifo #capture single images
    echo "screenshot 1" >/tmp/test.fifo #capture continuos
  • play webcam
mplayer tv:// -tv width=640:height=480:outfmt=rgb24:device=/dev/video0:noaudio
  • recording from webcam
    ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 webcam.mpg

Desktop

  • recording screencast
    ffmpeg -f x11grab -s 1280x800 -i :0.0 -sameq screencast.avi

Ripping

  • dumpfile from dvd
    mplayer dvd://1 -dumpstream -dumpfile output.vob
  • dumpfile from dvd folder (video_ts):
    mplayer dvd://1 -dvd-device /path/VIDEO_TS -dumpstream -dumpfile output.vob
  • single pass encoding to libx264 and aac
    ffmpeg -i input.avi -ab 128k -b 1200k -vc libx264 output.mp4
  • two pass encoding to libx264 and aac
    ffmpeg -i input.vob -pass 1 -an -vc libx264 -vpre slow_firstpass -b 1200k -threads 2 output.mp4
    
    ffmpeg -i input.vob -pass 2 -ac 128k -vc libx264 -vpre slow -b 1200k -threads 2 -y output.mp4

Happy multimedia!
LP


Masterizzare da linea di comando su linux

Di seguito un piccolo promemoria su come masterizzare da shell su linux. Sulla vostra distro avete bisogno di installare i pacchetti dvd+rw-tools e cdrkit, i quali installeranno i binari necessari. Si suppone che il cdrom/dvdrom si alloccato nel percorso /dev/sr0 e che abbiate i permessi necessari per la scrittura su tale device.

creare una iso

mkisofs -R -J -o nome.iso /directory

montare uns iso

mount -t iso9660 nome.iso /directory -o loop

Se avete a che fate un un cdrom, riscrivibile o meno, all’esigenza i comandi da lanciare sono i seguenti:

cdrecord -eject driveropts=burnfree -v -data nome.iso

crea e scrivi una iso

mkisofs -R -J /directory | cdrecord -v -

copiare un cd

cdrecord -v dev=/dev/sr0 -isosize -dao driveropts=burnfree /dev/sr0

scrivere un cd audio

cdrecord -eject driveropts=burnfree -v -audio track*.wav

scrivere un cd misto

cdrecord -eject driveropts=burnfree -v -data nome.iso -audio track*.wav

formattare un cd riscrivibile

cdrecord -eject dev=/dev/sr0 blank=all

Le stesse operazioni su un dvd possono essere svolte come:

formattare un dvd riscrivibile

growisofs -Z /dev/sr0=/dev/zero

scrivere una iso

growisofs -Z /dev/sr0=nome.iso

creare e scrivere una iso

growisofs -dvd-compat -Z /dev/dvd -J -R /directory

creare un dvd video

growisofs -dvd-compat -Z /dev/dvd -dvd-video

LP


Aggiornamento di xorg-server-1.9.2 e driver nvidia su gentoo

Ieri sera ho aggiornato all’ultima versione stabile di xorg-server-1.9.2 sulla mia gentoo, per un totale di poco più di 130 ebuild. Come ogni aggiornamento di xorg che si rispetti, non è filato tutto liscio da subito.

Il notebook è un Dell XPS 1330. Bene, dopo il fatidico:

emerge --sync
emerge -uND world

Ho rimosso tutte le vecchie configurazioni e creato, all’interno della directory /etc/X11/xorg.conf.d/ i seguenti files:

#> cat /etc/X11/xorg.conf.d/10-evdev.conf
Section "InputClass"
        Identifier "keyboard-all"
        Driver "evdev"
        Option "XkbLayout" "it"
#       Option "XkbVariant" ",qwerty"
#       Option "XkbOptions" "grp:alt_shift_toggle,grp:switch,compose:rwin,terminate:ctrl_alt_bksp"
        MatchIsKeyboard "on"
EndSection

Section "InputClass"
        Identifier "synaptics-all"
        Driver "synaptics"
        Option "RTCornerButton" "2"
        Option "HorizEdgeScroll" "true"
        Option "Emulate3Buttons" "on"
        Option "ZAxisMapping" "4 5"
        Option "vertedgescroll" "true"
        Option "TapButton1" "1"
        Option "TapButton3" "3"
        MatchIsTouchpad "on"
EndSection
#> cat /etc/X11/xorg.conf.d/11-nvidia.conf
Section "Device"
   Identifier "Card0"
   Driver "nvidia"
EndSection

ed al riavvio successivo non ho avuto problemi ne con i driver nvidia ne con il touchpad.
Spero che questo picccolo tip possa tornare utilie a qualcuno.

LP