Compressione filmati Mpeg2, quale sw, quale codec?

5 risposte [Ultimo messaggio]
Ritratto di Zio
Zio
(Junior)
Offline
Junior
Iscritto: 02/03/2010
Messaggi: 22

Spesso registro dalla tv qualche film da rivedere con calma.
Il decoder dtt Dikom mi registra degli mpeg2 su una penna usb drive

Vorrei comprimere i filmati da mpeg2 720x576 SD (non hd) a ....
e memorizzarli sul pc (non mi interessa la compatibilità dei dvd-players)

1. quale codec utilizzare per massima qualità minor spazio?
2. quale sw utilizzare per comprimere?
3. tra xvid, x264, webM, quale usare?

grazie

Ritratto di Nick78
Nick78
(Collaboratore)
Offline
Collaboratore
Iscritto: 19/01/2008
Messaggi: 1377

Dipende tutto da quello che vuoi farci con i filmati. Per una visione da pc io uso sempre avi e poco mp4. Per il software da utilizzare ne hai un bel pò su linux. Da ffmpeg da linea di comando (man ffpmeg per tutti i parametri) per arrivare a Avidemux, k9copy, kino, cinelerra...
Ciao ciao!!
Nicola

NiCk on Mandriva 2011 - Asus K61IC - P8700 - 4Gb Ram - KDE SC 4.6.5 - Kernel 3.0.1 - Nvidia GT_220M 1Gb - Linux registered user #496729 - www.nickworlds.it - Samsung Galaxy S3 Android 4.0.3

Ritratto di filotux
filotux
(Monster)
Offline
Monster
Iscritto: 07/12/2006
Messaggi: 245

Io per ora sto andando su x264 incapsulato in contenitore Matroska, che riesco a vedere anche sul lettore integrato del mio TV. Matroska e' un ottimo contenitore, sicuramente meglio dell'AVI. Per il formato dello stream video probabilmente in futuro andra' per la maggiore webM, ma per il momento x264 e' un ottimo compromesso anche se non completamente open source come webM.

Se vuoi la vita facile puoi provare con handbrake, se invece vuoi divertirti con i parametri da riga comandi allora vanno benissimo mplayer (con -vo opportuno), mencoder e ffmpeg. Il comando mkvmerge, invece, per incapsulare gli stream video ed audio nel container Matroska.

Se registri dalla TV e' probabile che lo stream video sia interlacciato, allora se vuoi deinterlacciarlo devi usare le opportune opzioni dei vari comandi (es. per mencoder/mplayer: "-vf tfields=4").

Di seguito i comandi che sto utilizzando per convertire i filmati HD presi da una telecamera Sony (sono in continua evoluzione, comunque, sto provando le varie combinazioni di parametri e bitrate):

# Filenames
input=INPUT-FILE
output=output.mkv
 
# Some parameters
bitrate=4000
preset=slower
fps=50
 
# Extract audio
mplayer -dumpaudio -dumpfile output.audio $input
 
# Extract video
mplayer -benchmark -nosound -vf tfields=4,harddup -vo yuv4mpeg:file=output.yuv $input
 
# Encode video
x264 --demuxer y4m --pass=1 --bitrate $bitrate --preset $preset --threads auto --output /dev/null output.yuv
x264 --demuxer y4m --pass=2 --bitrate $bitrate --preset $preset --threads auto --output output.x264 output.yuv
 
# Muxing audio+video into the container
mkvmerge -o $output --default-duration 0:${fps}fps output.x264 output.audio

Ovviamente ci sono un po' di file temporanei da eliminare, il comando per estrarre lo stream video, poi, occupa un sacco di spazio perche' usa un formato lossless.

Comunque in soldoni estraggo la traccia audio e quella video, codifico quella video in x264 e metto tutto nel container Matroska (l'audio non lo converto).

E' solo una traccia, sicuramente avrai bisogno di modificare qualche parametro o aggiungere/levare qualche opzione (es. la telecamera registra interlacciato a 50fps, quindi mi tocca specificarlo altrimenti mi esce a scatti), ma puoi usare i comandi illustrati come base per sbizzarrirti con altre opzioni secondo le tue necessita'.

Eventualmente puoi saltare l'estrazione della traccia video e fare tutto con mencoder, insomma ci sono tanti modi per ottenere piu' o meno lo stesso risultato.

Alternativamente prova handbrake, io lo uso per convertire i DVD. Come formato comunque uso sempre x264 in container Matroska.

Ciao

Pietro

Debian Lenny on BeagleBoard

Ritratto di Zio
Zio
(Junior)
Offline
Junior
Iscritto: 02/03/2010
Messaggi: 22

per ora sto comprimendo da riga di comando
mencoder fileinput.mpg -oac mp3lame -ovc x264 -o fileoutput.mp4

Solo che mi introduce un leggero ritardo dell'audio rispetto al video

MEncoder SVN-1.rc4.0.r31086.3plf2010.1-4.4.3 (C) 2000-2010 MPlayer Team

WARNING: OUTPUT FILE FORMAT IS _AVI_. See -of help.
success: format: 0 data: 0x0 - 0x68942804
MPEG-PS file format detected.
VIDEO: MPEG2 704x576 (aspect 3) 25.000 fps 15000.0 kbps (1875.0 kbyte/s)
[V] filefmt:2 fourcc:0x10000002 size:704x576 fps:25.000 ftime:=0.0400
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 48000 Hz, 2 ch, s16le, 192.0 kbit/12.50% (ratio: 24000->192000)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
==========================================================================
Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
The selected video_out device is incompatible with this codec.
Try appending the scale filter to your filter list,
e.g. -vf spp,scale instead of -vf spp.
VDecoder init failed Sad
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)
==========================================================================
MP3 audio selected.
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
x264 [info]: using SAR=16/11
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
x264 [info]: profile High, level 3.0
Pos: 0.0s 22f ( 0%) 0.00fps Trem: 0min 0mb A-V:0.084 [0:0]
Skipping frame!
[mpeg2video @ 0x8763b40]00 motion_type at 38 7n 0mb A-V:0.052 [0:0]
[mpeg2video @ 0x8763b40]ac-tex damaged at 4 31
[mpeg2video @ 0x8763b40]00 motion_type at 1 32
[mpeg2video @ 0x8763b40]ac-tex damaged at 23 33
[mpeg2video @ 0x8763b40]00 motion_type at 5 34
[mpeg2video @ 0x8763b40]ac-tex damaged at 24 35
[mpeg2video @ 0x8763b40]Warning MVs not available
[mpeg2video @ 0x8763b40]concealing 1276 DC, 1276 AC, 1276 MV errors
Pos: 0.0s 32f ( 0%) 0.00fps Trem: 0min 0mb A-V:0.083 [0:0]
Skipping frame!
Writing header...3f ( 0%) 0.00fps Trem: 0min 0mb A-V:0.062 [0:0]
ODML: vprp aspect is 16:9.
Setting audio delay to 0.072s.
Writing header...
ODML: vprp aspect is 16:9.
Setting audio delay to 0.072s.
^CPos: 237.3s 5975f ( 7%) 4.67fps Trem: 247min 723mb A-V:0.063 [1850:178]
Flushing video frames.
^[[1;2B^[[AWriting index...
Writing header...
ODML: vprp aspect is 16:9.
Setting audio delay to 0.072s.

Video stream: 1847.913 kbit/s (230989 B/s) size: 55178697 bytes 238.880 secs 5975 frames

Audio stream: 178.776 kbit/s (22346 B/s) size: 5312856 bytes 237.744 secs
x264 [info]: frame I:28 Avg QP:22.10 size: 34672
x264 [info]: frame P:3480 Avg QP:24.80 size: 12625
x264 [info]: frame B:2464 Avg QP:26.84 size: 4169
x264 [info]: consecutive B-frames: 25.1% 53.8% 15.7% 5.5%
x264 [info]: mb I I16..4: 13.5% 79.3% 7.1%
x264 [info]: mb P I16..4: 3.1% 10.7% 0.6% P16..4: 42.5% 14.8% 8.2% 0.0% 0.0% skip:20.2%
x264 [info]: mb B I16..4: 0.2% 0.8% 0.0% B16..8: 40.5% 5.6% 1.5% direct: 3.1% skip:48.4% L0:37.6% L1:49.1% BI:13.3%
x264 [info]: 8x8 transform intra:75.2% inter:82.1%
x264 [info]: coded y,uvDC,uvAC intra: 60.7% 56.8% 13.2% inter: 24.1% 22.9% 1.0%
x264 [info]: i16 v,h,dc,p: 36% 30% 10% 24%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 10% 39% 3% 3% 6% 3% 6% 4%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 34% 19% 4% 4% 6% 4% 5% 4%
x264 [info]: i8c dc,h,v,p: 54% 15% 26% 5%
x264 [info]: Weighted P-Frames: Y:2.6%
x264 [info]: ref P L0: 62.3% 16.3% 14.6% 6.7% 0.1%
x264 [info]: ref B L0: 85.3% 13.6% 1.1%
x264 [info]: ref B L1: 97.0% 3.0%
x264 [info]: kb/s:1847.91

La compressione a livello di qualita' è ottima, l'audio pero' è ritardato

X Filotux non capisco quel file di configurazione ...per quale programma lo devo settare?

Ritratto di filotux
filotux
(Monster)
Offline
Monster
Iscritto: 07/12/2006
Messaggi: 245

Se leggi i log sembrerebbe che le dimensioni degli stream audio e video sono differenti. Prova ad usare un altro container (es. avi) oppure imposta le opzioni -delay o -audio-delay di mencoder (man mencoder). Alternativamente puoi provare anche a copiare lo stream audio senza ricodificarlo con l'opzione "-oac copy" al posto di "-oac mp3lame".

Il mio non e' un file di configurazione, ti ho semplicemente mostrato i comandi che sto usando in questi giorni per convertire in formato x264 in container mkv dei filmati presi da una telecamera fullhd.

Prova le varie opzioni e facci sapere se risolvi.

Pietro

Debian Lenny on BeagleBoard

Ritratto di franklinux.kde
franklinux.kde
(Junior)
Offline
Junior
Iscritto: 28/06/2011
Messaggi: 9

ciao,installa dvdauthor e vai tranquillamente con Kino