«

»

Mag 14

x264: comprimere a 10 bit con ffmpeg

Ultimamente va di moda comprimere con x264 a 10 bit e profilo high 10.

\n

Vediamo come fare

\n

\nCon ffmpeg di sistema (che deve avere –enable-libx264 nella configurazione),
\nesempio con debian-multimedia:

\n

ffmpeg version 1.0.7 Copyright (c) 2000-2013 the FFmpeg developers
\n built on May 14 2013 06:27:36 with gcc 4.7 (Debian 4.7.3-4)

\n

o con una versione compilata da voi, ad esempio:

\n

ffmpeg version N-53043-g6b13f54 Copyright (c) 2000-2013 the FFmpeg developers
\n built on May 14 2013 15:34:04 with gcc 4.7 (Debian 4.7.3-4)
\n

\n

cioè un 1.2+git-g6b13f54,
\nviene usata la libx264 di sistema, che è compilata a 8 bit.

\n

Per comprimere a 10 bit è necessario ricompilare x264 con il supporto ai 10 bit.
\nSe avete come nel mio caso la libx264-132, potete scaricarvi uno snapshot, scompattarlo e compilarlo con:

\n

./configure \
\n–prefix=/opt/x264-10 \
\n–extra-cflags=’-g -O3 -fstack-protector \
\n–param=ssp-buffer-size=4 -Wformat -Werror=format-security ‘ \
\n–extra-ldflags=’-Wl,-z,relro’ \
\n–enable-static \
\n–enable-pic \
\n–bit-depth=10 \
\n–enable-visualize \
\n–disable-lavf \
\n–enable-shared

\n

poi i soliti
\nmake
\nsudo make install

\n

installeranno la nuova lib in /opt/x264-10, senza disturbare il sistema.

\n

Ora per far usare a ffmpeg la libreria, basta creare un wrapper:

\n

#————————————-
\n#!/bin/sh

\n

LD_LIBRARY_PATH=/opt/x264-10/lib
\nexport LD_LIBRARY_PATH

\n

ffmpeg “$@”
\n#————————————-

\n

salvatelo come

\n

ffmpeg-x10bit

\n

rendetelo eseguibile, e spostatelo in
\n/usr/local/bin/ffmpeg-x10bit

\n

Ora se volete usare il normale 8bit lanciate ffmpeg,
\nse volete usare il 10bit lanciate ffmpeg-x10bit.

\n

Qualche test.

\n

10 bit

\n

ffmpeg-x10bit -y -i /home/mc/test.mkv -t 00:03:00 -c:v libx264 -profile high10 -preset faster -tune film -b:v 730k -an -f matroska out2.mkv
\nffmpeg version N-53043-g6b13f54 Copyright (c) 2000-2013 the FFmpeg developers
\n built on May 14 2013 15:34:04 with gcc 4.7 (Debian 4.7.3-4)
\nInput #0, matroska,webm, from ‘/home/mc/test.mkv’:

\n

Duration: 00:42:56.21, start: 0.000000, bitrate: 845 kb/s
\n Stream #0:0(und): Video: h264 (High), yuv420p, 720×406, SAR 1:1 DAR 360:203

\n

[libx264 @ 0x349f240] using SAR=1/1
\n[libx264 @ 0x349f240] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
\n[libx264 @ 0x349f240] profile High 10, level 3.0, 4:2:0 10-bit
\n[libx264 @ 0x349f240] 264 – core 132 – H.264/MPEG-4 AVC codec – Copyleft 2003-2013

\n

Output #0, matroska, to ‘out2.mkv’:
\nframe= 4313 fps= 82 q=-1.0 Lsize= 16420kB time=00:02:59.93 bitrate= 747.6kbits/s
\nvideo:16387kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.195247%

\n

real 0m52.385s

\n

52 secondi per un video 720