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

05 Noviembre 2018 by 17 comentarios Multimedia 1526 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

17 comentarios

  • Augustus
    Augustus Martes, 26 Febrero 2019 14:53

    Link exchange is nothing else however it is just
    placing the other person's web site link on your page at proper place and other
    person will also do similar in support of you.

  • Shay
    Shay Jueves, 28 Febrero 2019 23:38

    Hello, i believe that i saw you visited my web site thus i got here
    to go back the prefer?.I'm attempting to in finding issues to enhance my web site!I guess
    its ok to use a few of your ideas!!

  • Harvey
    Harvey Sábado, 02 Marzo 2019 06:16

    Nice respond in return of this query with real arguments and explaining everything about that.

  • Jodie
    Jodie Sábado, 02 Marzo 2019 21:05

    O povoação surpreende pela amplitude quanto o jardim a diferencia porque a vira em encanto especial.

    Nosso chacara, conta área para conseguir até 600 pessoas.
    Sem dizer a cozinha industrial, diversas alternativas de locais maravilhosos para execução da cerimônia,
    pista de dança com o palco, piscina rodeada de palmeiras, Iluminação
    no jardim, estacionamento seguro e próprio para 400 vagas, entre outros.

  • Hiram
    Hiram Martes, 05 Marzo 2019 09:14

    You really make it seem so easy with your presentation however
    I find this matter to be actually one thing that I
    believe I would never understand. It seems too complicated and very broad for me.
    I'm taking a look forward on your next post, I'll attempt to get the grasp of it!

  • Bethany
    Bethany Viernes, 08 Marzo 2019 14:44

    Hello there! I know this is somewhat off topic but I was wondering which blog platform are you using for
    this site? I'm getting fed up of Wordpress because I've had problems with hackers and I'm looking at alternatives for another platform.

    I would be great if you could point me in the direction of a good platform.

  • Penney
    Penney Jueves, 25 Abril 2019 04:29

    Hi there just wanted to give you a quick heads up.
    The words in your article seem to be running off the screen in Opera.
    I'm not sure if this is a format issue or something to
    do with browser compatibility but I thought I'd post to let you know.
    The layout look great though! Hope you get the issue fixed soon. Kudos

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í