2010-03-31 7 views
14

Est-ce que quelqu'un sait s'il est possible d'encoder une vidéo en utilisant ffmpeg à l'envers? (Donc, la vidéo qui en résulte joue à l'envers?)encoder la vidéo à l'envers?

Je pense que je peux en générant des images pour chaque image (donc un dossier d'images étiquetées 1.jpg, 2.jpg etc), puis écrire un script pour changer les noms des images , puis ré-encoder l'ivdeo à partir de ces fichiers.

Quelqu'un sait-il d'une manière plus rapide?

Ceci est une vidéo FLV.

Merci

Répondre

15

Non, il est impossible en utilisant ffmpeg pour encoder une vidéo en sens inverse sans dumping à des images, puis de nouveau. Il y a un certain nombre de guides disponibles en ligne pour vous montrer comment le faire, notamment:

et

Ce dernier qui suit :

Dump toutes les trames vidéo

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

Dump audio

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

audio inverse

$ sox -V audio.wav backwards.wav reverse 

images vidéo Cat dans l'ordre inverse de FFmpeg comme entrée

$ 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 

Utilisez MEncoder Désentrelacer PAL dv et doubler la fréquence d'images de 25 à 50, puis diriger vers 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

Cheers, très utile. Un petit changement - en utilisant '$ (ls -r * jpg)' au lieu de '$ (ls -t * jpg)' est meilleur (pour moi au moins) car les temps de modification sont trop grossiers pour donner la bonne commande – simonb

+0

@ ChaitanyaChandurkar: Dépend de la puissance du périphérique, de l'architecture du processeur et de la vitesse d'horloge, etc. –

+3

Pour les versions plus récentes de ffmpeg, vous devez remplacer -vpre slow par -preset slow dans la dernière étape. – Ruben

9

J'ai créé un script pour ce basé sur la réponse d'Andrew Stubbs

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

Peut être utilisé comme tant

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

Ce script n'a pas fonctionné pour moi. Il ne parvient pas à créer le répertoire temporaire avec 'mktemp'. – Pistos

+0

J'ai OS X, c'est peut-être une raison? – hfossli