Mettez un manchot dans votre PC
tar xvfz kino-1.3.4.tar.gz
Cela donne le répertoire kino-1.3.4 on veillera à ce que les packages suivants soient installés intltool, libiec61883-devel (si vous avez une entrée firewire) libsamplerate-devel et libglade2-devel (libglade2-dev sous ubuntu). Maintenant sous kino-1.3.4 on tape
./configure
--enable-quicktime --disable-local-ffmpeg
make
je bute sur l'erreur suivante
frame.cc:1066: erreur: ‘avcodec_decode_video’ was not declared in
this scope
cela vient de la fontion avcodec_decode_video
qui a disparu des versions récentes de ffmpeg et qui a été remplacé par la
commande avcodec_decode_video2
qui a des arguments différents.
On édite le fichier ./src/frame.cc au
niveau de la fonction suivante
int Frame::ExtractRGB( void * rgb )
{
#if defined(HAVE_LIBAVCODEC)
AVFrame *frame =
avcodec_alloc_frame();
AVPicture dest;
int got_picture;
avcodec_decode_video2(
libavcodec, frame, &got_picture, data, GetFrameSize() );
on écrit à la place
AVFrame *frame =
avcodec_alloc_frame();
AVPicture dest;
int got_picture;
AVPacket pkt;
av_init_packet(&pkt);
pkt.data = data;
pkt.size = GetFrameSize();
avcodec_decode_video2(
libavcodec, frame, &got_picture, &pkt );
au niveau de la fonction suivante
int Frame::ExtractYUV( void *yuv )
{
#if defined(HAVE_LIBAVCODEC)
AVFrame *frame = avcodec_alloc_frame();;
AVPicture output;
int got_picture;
avcodec_decode_video( libavcodec, frame,
&got_picture, data, GetFrameSize() );
on écrit à la place
int Frame::ExtractYUV( void *yuv )
{
#if defined(HAVE_LIBAVCODEC)
AVFrame *frame = avcodec_alloc_frame();;
AVPicture output;
int got_picture;
AVPacket pkt;
av_init_packet(&pkt);
pkt.data = data;
pkt.size = GetFrameSize();
avcodec_decode_video2( libavcodec, frame, &got_picture, &pkt );
au niveau de la fonction suivante
int Frame::ExtractYUV420( uint8_t
*yuv, uint8_t *output[ 3 ] )
{
#if defined(HAVE_LIBAVCODEC)
AVFrame *frame = avcodec_alloc_frame();
int got_picture;
avcodec_decode_video( libavcodec, frame, &got_picture, data,
GetFrameSize() );
on écrit à la place
int Frame::ExtractYUV420( uint8_t
*yuv, uint8_t *output[ 3 ] )
{
#if defined(HAVE_LIBAVCODEC)
AVFrame *frame = avcodec_alloc_frame();
int got_picture;
AVPacket pkt;
av_init_packet(&pkt);
pkt.data = data;
pkt.size = GetFrameSize();
avcodec_decode_video2( libavcodec, frame, &got_picture, &pkt );
au niveau de la fonction suivante
bool Frame::CreateEncoder( bool
isPAL, bool isWide )
{
pthread_mutex_lock( &avcodec_mutex );
#if defined(HAVE_LIBAVCODEC)
if ( avformatEncoder == NULL )
{
avformatEncoder = av_alloc_format_context();
if ( avformatEncoder )
{
avformatEncoder->oformat = guess_format( "dv", NULL, NULL );
AVStream* vst = av_new_stream( avformatEncoder, 0 );
vst->codec->codec_type = CODEC_TYPE_VIDEO;
vst->codec->codec_id = CODEC_ID_DVVIDEO;
vst->codec->bit_rate = 25000000;
vst->start_time = 0;
on écrit à la place
bool Frame::CreateEncoder( bool
isPAL, bool isWide )
{
pthread_mutex_lock( &avcodec_mutex );
#if defined(HAVE_LIBAVCODEC)
if ( avformatEncoder == NULL )
{
avformatEncoder = avformat_alloc_context();
if ( avformatEncoder )
{
avformatEncoder->oformat = av_guess_format( "dv", NULL, NULL );
AVStream* vst = av_new_stream( avformatEncoder, 0 );
vst->codec->codec_type = AVMEDIA_TYPE_VIDEO;
vst->codec->codec_id = CODEC_ID_DVVIDEO;
vst->codec->bit_rate = 25000000;
vst->start_time = 0;
on retape make puis en tant que root
make install
on rajoutera dans le fichier /etc/ld.so.conf la ligne /usr/local/lib/kino-gtk2 puis on tape ldconfig
L'exportation au format divx marche enfin très bien il utilise pour cela ffmpeg (présenté dans ma page outils de base pour la vidéo). Cela dit vous ne pouvez pas saisir de paramètres de transcodage à ffmeg, ils sont figés, on peut modifier cela pour que ça corresponde à vos attentes.Editer le fichier kino-1.3.4/scripts/exports/ffmpeg_divx.sh vous trouverez les lignes
# ProfilesPuis
# Run
the command
case "$profile" in
"0" ) ffmpeg -threads $threads -f dv -i pipe: $hq
$interlace -g 300 -vtag DIVX -s $normalisation \
-aspect $aspect -qscale 2 \
-acodec "$acodec" -ab 192$audio_kilo -y "$file".avi ;;
"1" ) ffmpeg -threads $threads -f dv -i pipe: $hq
$progressive -g 300 -vtag DIVX -s $full_res \
-aspect $aspect -qscale 2 $qpel \
-acodec "$acodec" -ab 192$audio_kilo -y "$file".avi ;;
"2" ) ffmpeg -threads $threads -f dv -i pipe: $hq
$progressive -g 300 -vtag DIVX -s $med_res \
-aspect $aspect -qscale 4 -acodec "$acodec" -ar 44100 -ab
128$audio_kilo -y "$file".avi ;;
"3" ) ffmpeg -threads $threads -f dv -i pipe: $hq
$progressive -g 120 -g 300 -vtag DIVX -s $med_res \
-aspect $aspect -b 500$kilo -acodec "$acodec" -ar 32000 -ab
64$audio_kilo -y "$file".avi ;;
"4" ) ffmpeg -threads $threads -f dv -i pipe: $hq
$progressive -r 12 -g 120 -vtag DIVX -s $low_res \
-aspect $aspect -b 96$kilo -acodec "$acodec" -ac 1 -ar 22050 -ab
32$audio_kilo -y "$file".avi ;;
esac
Vous pouvez très facilement adapter ou créer un profil particulier
FFMPEG supporte les options suivantes
-b bitrate vidéo
-acodec mp3 -ab bitrate audio
mp3
-s taille de l'image
Pour le reste reportez vous à la doc de ffmpeg (man).
Recommencez la compilation de kino...
Voilà ce que ça donne en tapant maintenant
kino
Mode Acquisition
Voilà pour la configuration (Menu Editions->Préférences). Onglet IEEE 1394. Je me suis contenté de charger le module raw1394 par défaut kino utilise maintenant libiec61883 au lieu de dv1394, si vous avez néanmoins des soucis d'export vers le caméscope, vous pouvez toujours compiler kino avec l'option --with-dv1394
On sort des pages de configuration. Onglet Montage pour monter sa
vidéo. Pour avoir une idée plus poussée du
montage avec kino, voir la page correspondante.
Onglet Timeline
Onglet Découper
L'onglet Effets pour
gérer les
transitions entre les scènes.
Export vers un fichier MPEG. On
a
le choix entre les codecs suivants generic MPEG1, standard VCD,
VCD, generic
MPEG2, standard SVCD, user SVCD et DVD, à noter la
possibilité de création d'un xml pour le dvdauthoring.
L'export au format divx au
format se fait
à partir de l'onglet Autre,
[Retour page d'accueil FUNIX] |