2010-03-31 15 views
14

¿Alguien sabe si es posible codificar un video usando ffmpeg en reversa? (¿Entonces el video resultante se reproduce al revés?)codificar video en reversa?

Creo que puedo generando imágenes para cada fotograma (una carpeta de imágenes con la etiqueta 1.jpg, 2.jpg, etc.), luego escribo un script para cambiar los nombres de las imágenes , y luego vuelva a codificar el ivdeo de estos archivos.

¿Alguien sabe de una manera más rápida?

Este es un video FLV.

Gracias

Respuesta

15

No, no es posible usando ffmpeg para codificar un vídeo en sentido inverso sin discriminar a las imágenes y luego de vuelta otra vez. Hay una serie de guías disponibles en línea que le muestre cómo hacerlo, en particular:

y

El último de los cuales sigue :

volcar todos cuadros de video

$ ffmpeg -i input.mkv -an -qscale 1 %06d.jpg 

audio volcado

$ ffmpeg -i input.mkv -vn -ac 2 audio.wav 

$ sox -V audio.wav backwards.wav reverse 

fotogramas de vídeo gato audio inversas en orden inverso para FFmpeg como entrada

$ cat $(ls -r *jpg) | ffmpeg -f image2pipe -vcodec mjpeg -r 25 -i - -i backwards.wav -vcodec libx264 -vpre slow -crf 20 -threads 0 -acodec flac output.mkv 

Uso mencoder a desentrelazado PAL dv y duplique la velocidad de cuadro de 25 a 50, luego canalice a FFmpeg.

$ mencoder input.dv -of rawvideo -ofps 50 -ovc raw -vf yadif=3,format=i420 -nosound -really-quiet -o - | ffmpeg -vsync 0 -f rawvideo -s 720x576 -r 50 -pix_fmt yuv420p -i - -vcodec libx264 -vpre slow -crf 20 -threads 0 video.mkv 
+8

Saludos, muy servicial. Un pequeño cambio - usando '$ (ls -r * jpg)' en lugar de '$ (ls -t * jpg)' es mejor (al menos para mí) ya que los tiempos de modificación son demasiado burdos para dar el orden correcto – simonb

+0

@ ChaitanyaChandurkar: Depende de qué tan potente es el dispositivo, la arquitectura del procesador y la velocidad del reloj, etc. –

+3

Para las versiones más nuevas de ffmpeg, debe reemplazar -vpre lento a -presentar lento en el último paso. – Ruben

9

He creado un script para esta basado en la respuesta de Andrew Stubbs

https://gist.github.com/hfossli/6003302

Se pueden usar como así

./ffmpeg_sox_reverse.sh -i Desktop/input.dv -o test.mp4 
+0

Este script no funcionó para mí. No puede hacer el directorio temporal con 'mktemp'. – Pistos

+0

Tengo OS X, ¿quizás esa sea una razón? – hfossli