[bglug] Conversione con ffmpeg (Lungo)

beppegiorgi71@gmail.com beppegiorgi71@gmail.com
Dom 30 Nov 2008 23:28:13 CET


Ciao a tutti,
prima di tutto i miei complimenti a tutti voi, anche se raramente scrivo 
in ML vi leggo sempre, e con grande piacere, ma veniamo al dunque, ho un 
Nokia N95-8GB più altri 3 cellulari più vecchiotti, per quanto riguarda 
l'N95 non ho problemi di spazio ma per gli altri si, da quì la decisione 
di utilizzare come formato audio dei miei files musicali il wma, 
utilizzando questo formato ho la possibilità di utilizzare i files su 
tutti i miei cellulari (e pure in macchina!) e inoltre convertendoli con 
bitrate a 64K ho un certo guadagno in termini di spazio, mantenendo una 
qualità audio, per me, più che accettabile.
Dopo varie peripezie sono riuscito a utilizzare ffmpeg per convertire i 
files e quindi a "staccarmi" dall'ultimo vincolo che mi teneva legato a 
Windows, cercando per la rete ho trovato anche uno script per convertire 
video per l'N95 e sto cercando di adattarlo per la conversione dei files 
audio, ma purtroppo ho ancora qualche problemino:

1) Su uno dei cellulari vecchi (Motorola A1000) i files si sentono ma 
solo ad in-ter-mit-ten-za (Problema di codec?)
2) Lo script adattato non converte tutti i files presenti nella cartella 
in cui viene eseguito ma solo uno dopodichè si ferma senza errore 
alcuno, lo script originale invece converte tutto ciò che trova senza 
problemi
3) Come faccio a fare in modo che i tags ID3 (Artista, Album ,Brano, 
Etc.) vengano riportati anche nei files convertiti?

Di seguito trovate lo script originale e successivamente quello 
modificato... speriamo che qualcuno di voi mi sappia aiutare, ah... 
un'ultima cosa (Anche se la capirete guardando lo script adattato) sono 
"Principiante DOCG" per quanto riguarda script e shell!

Grazie di nuovo a tutti, Ciao, Beppe.

### Originale ###

#!/bin/sh
#
# Optimal movie encoding for Nokia N-series mobile phones
#
# Copyright 2008 Red Innovation Ltd.
#
# Say hi if you find this useful.
# We do some professional mobile video publishing, so if you
# need a helping hand please call us.
#
# Usage: Run encode.sh in any folder and all video files are recursively 
converted to mobile phone suitable format
#
# Note: We expect all the source material be in 16:9 aspect ration
#
# Also see 
http://www.nseries.com/index.html#l=support,search,faq,general,video%20encoding,53848
#

VIDEO_BITRATE=300k

AUDIO_BITRATE=64k

# Assume locally build ffmpeg + x264 in /usr/local/bin
# http://ubuntuforums.org/showthread.php?t=786095
export LD_LIBRARY_PATH=/usr/local/lib

# Search all source AVI, MPG and WMV video files
# Place all encoded files to the same folder with the source, with added 
.mp4 extension
find . -iname "*.avi" -or -iname "*.wmv" -or -iname "*.mpg" | while read 
src ; do
        srcfile=`basename "$src"`
    srcfolder=`dirname "$src"`
    dstfile="$srcfolder"/"$srcfile".mp4

    # The magical string!
    # Size and cropping is for 16:9 source material, so that 320:240 
display will have black bars.
    # Fex pixels off... note that h264 sizes must be multiplies of 16, 
use 256x144 for streaming
    # N95 RealMedia player does not seem to respect MPEG-4 embedded 
aspect ration info.
    /usr/bin/ffmpeg -y -i "$srcfile" -acodec libfaac -ab $AUDIO_BITRATE 
-s 320x240 -aspect 16:9 -vcodec libx264 -b $VIDEO_BITRATE -qcomp 0.6 
-qmin 16 -qmax 51 -qdiff 4 -flags +loop -cmp +chroma -subq 7 -refs 6 -g 
250 -keyint_min 25 -rc_eq 'blurCplx^(1-qComp)' -sc_threshold 40 
-me_range 12 -i_qfactor 0.71 -directpred 3 "$dstfile"

done

### Adattato ###

#!/bin/sh
#
# Script per la conversione di file audio di vario tipo in wma.
#
# Utilizzo: Eseguire ffmpeg2wma.sh in qualsiasi cartella e tutti i files 
audio presenti verranno convertiti
#

AUDIO_BITRATE=64k

export LD_LIBRARY_PATH=/usr/local/lib

# Cerca tutti i files audio presenti nella cartella corrente
# Salva tutti i file codificati nella stessa cartella con lo stesso nome 
ma con estensione .wma
find . -iname "*.wav" -or -iname "*.mp3" -or -iname "*.m4a" -or -iname 
"*.aac" | while read src ; do
        srcfile=`basename "$src"`
    srcfolder=`dirname "$src"`
    dstfile="$srcfolder"/"$srcfile".wma

    # La stringa magica!
    /usr/bin/ffmpeg -i "$srcfile" -acodec wmav2 -ac 2 -ar 44100 -ab 
$AUDIO_BITRATE -pass 2 "$dstfile"

done


Maggiori informazioni sulla lista bglug