Buscar una canción con la misma duración de un vídeo dado

05 Noviembre 2018 by 19 comentarios Multimedia 6647 Views
Valora este artículo
(0 votos)

Hemos hecho un vídeo que no tiene sonido a partir de imágenes generadas con ImageMagick, o a partir de una única imagen, o hemos concatenado vídeos con ffmpeg o... sea como sea, resulta que tenemos un vídeo sin audio.

Y queremos que tenga audio para que sea más agradable su visionado.

Pero hay veces que nos ha salido un vídeo más largo, otras veces más pequeño... generalmente, al montar un vídeo no sabemos antes de empezar la duración exacta de dicho vídeo. Y si lo hemos hecho automáticamente con scripts, menos. Así que queremos vacilar de ser hackers de ImageMagick, deberemos de buscar, de forma automática, una canción que dure exactamente lo mismo que el vídeo.
Y aquí viene de nuevo vinfo.sh a ayudarnos. Y youtube-dl también puede ayudarnos mucho, ya que podemos buscar canciones con licencia creative commons en YouTube y descargarlas en un directorio. Y usarlas justo en el momento que coincida su duración con la duración del vídeo que acabamos de hacer.

¿Vemos cómo?

Aquí está el código, bastante autodescriptivo si has leído los anteriores artículos. Pero con una salvedad: si los nombres de las canciones, o de cualquier otro fichero puede que contenga espacios vacíos, deberemos cambiar el separador de campo.

#!/bin/bash
 
# Script que recibe un vídeo como parámetro
# calcula su duración y busca en un directorio
# una canción que coincida en duración 
# y lo anexa. 
# Para mantener el nombre original el script
# creará una copia temporal que luego borrará. 
# Para poder enlazar la canción y referenciar 
# al autor, acabará el script escribiendo 
# el nombre del fichero de la canción. 
 
directoriocanciones="instrumentales"
 
# Cambia el separador de campo
IFS='
'
 
# Extrae el nombre del fichero 
# y la extensión del fichero pasado como parámetro
sinextension=${1%.*}
extension=${1##*.}
 
# Calcula la duración del audio del fichero pasado como argumento
duracion=$(./vinfo.sh duration $1)
duracionneta=${duracion:0:8}
 
echo "La duracion del video es "$duracion
 
# Crea el fichero temporal y borra el antiguo
 
nuevofichero=$sinextension"-temp."$extension
 
echo "El nuevo fichero será: "$nuevofichero
 
# Busca una canción en el directorio de canciones
# que tenga la misma duración que el vídeo
 
for i in $(ls $directoriocanciones)
do
    duracioncancion=$(./vinfo.sh duration "$directoriocanciones/$i")
    duracionnetacancion=${duracioncancion:0:8}
        echo "duracion video: "$duracionneta
        echo "duracion cancion: "$duracionnetacancion
        echo "cancion: "$i
 
    if [ "$duracionneta" = "$duracionnetacancion" ]
    then
 
        ffmpeg -i $1 -i "$directoriocanciones/$i" -c:v copy -c:a copy $nuevofichero
        rm $1
        mv $nuevofichero $1
        rm $nuevofichero
        echo $i
        break
    fi
done

Información adicional

19 comentarios

  • www.nyttigbras.dk
    www.nyttigbras.dk Domingo, 09 Diciembre 2018 22:25

    Hi, every tіme i used to chheck web site poosts hsre in tthe early hours in the dawn, since
    i enjoy to find out more and more.

  • Lorena
    Lorena Miércoles, 26 Diciembre 2018 17:54

    제주출장아가씨
    This post is actually a fastidious one it assists new the web people, who are wishing in favor of blogging.

  • Marcelino
    Marcelino Sábado, 09 Febrero 2019 09:39

    I don't even know how I ended up here, but I thought this post was good.
    I don't know who you are but definitely you are going to a famous
    blogger if you aren't already ;) Cheers!

  • Spencer
    Spencer Jueves, 14 Febrero 2019 23:34

    Wonderful blog! I found it while searching on Yahoo News.

    Do you have any tips on how to get listed in Yahoo News?
    I've been trying for a while but I never seem to get there!
    Thank you

  • Loretta
    Loretta Sábado, 16 Febrero 2019 15:38

    I like it when people get together and share thoughts.
    Great blog, stick with it!

  • Edward
    Edward Lunes, 18 Febrero 2019 20:34

    Great post.

  • Alison
    Alison Jueves, 21 Febrero 2019 15:04

    Heya are using Wordpress for your site platform?
    I'm new to the blog world but I'm trying to get started and set up my
    own. Do you require any html coding knowledge to make your own blog?

    Any help would be really appreciated!

  • Roland
    Roland Viernes, 22 Febrero 2019 11:57

    Hello! Someone in my Myspace group shared this site with us so I came to check it
    out. I'm definitely enjoying the information. I'm book-marking and will be tweeting this to my followers!
    Outstanding blog and superb design.

  • Olga
    Olga Lunes, 25 Febrero 2019 05:51

    This post is truly a nice one it assists new internet people, who are wishing
    for blogging.

  • Chassidy
    Chassidy Martes, 26 Febrero 2019 07:10

    WOW just what I was looking for. Came here by searching for uberlandia

Deja un comentario

Asegúrese de introducir toda la información requerida, indicada por un asterisco (*). No se permite código HTML.

¡Atención! Este sitio usa cookies y tecnologías similares.

Si no cambia la configuración de su navegador, usted acepta su uso. Saber más

Acepto

Vea nuestra política de cookies y enlaces de interés aquí