Προς το περιεχόμενο

Προσθήκη άλλου ήχου σε avi


Tzimmys

Προτεινόμενες αναρτήσεις

Δημοσ.

Να σας βάλω κατευθείαν στο θέμα. Έχω ένα αρχείο avi στο οποίο ο ήχος και το video δεν είναι απόλυτα συγχρονισμένα. Καταρχήν θέλω να ρωτήσω αν υπάρχει τρόπος να μετατοπίσω τον ήχο κατά ένα διάστημα που θέλω. Με player που έχει τη δυνατότητα να μετακινεί τον ήχο, είδα ότι χάνει το ίδιο παντού, το οποιο σημαίνει ότι με μια μετατόπιση θα είναι εντάξει.

 

Και με τη ευκαιρία θα ήθελα να ρωτήσω αν υπάρχει τρόπος να εξάγω αυτόν τον ήχο και να φορτώσω κάποιον άλλο.

Δημοσ.

VirtualDubMod (free).

 

Μίνι οδηγός:

Αφού το ανοίξεις το VirtualDubMod και εισάγεις την ταινία πάτα Streams -> Stream list.

Εκεί θα δεις τα αρχεία ήχου υπάρχουν.

Πάτα "Add" για να προσθέσεις το νέο αρχείο ήχου.

Κάνε κλικ σε αυτό που δε θες κατέβασέ το δεύτερο στη λίστα (αν δεν είναι ήδη) πατώντας το κουμπί Move down και πάτα το κουμπί "Disable" (κάτω δεξιά) και ΟΚ.

Κάνε δεξί κλικ πάνω στο αρχείο που σ' ενδιαφέρει και πάτα "Interleaving", από το "Audio skew correction" πετυχαίνεις το χρονισμό μεταξύ εικόνας και ήχου (η τιμή που θα δώσεις είναι πάντα σε ms).

Πήγαινε Video και τσεκάρισε "Direct Stream Copy" (για να μη γίνει re-encoding).

Και τέλος File -> Save as για να σώσεις το αρχείο της ταινίας.

Δημοσ.

Τελικά δυστυχώς ο ήχος δε χάνει παντού το ίδιο, αλλά ξεκινάει σωστά (συγχρονισμένα) και μέχρι να τελειώσει η ταινία μένει πίσω για σχεδόν 1 με 1,5 δεπτ. Υπάρχει τρόπος να συγχρονιστεί αυτό το πράγμα? Αν και δύσκολο δεν μου φαίνεται αδύνατο. Το subtitle workshop έχει παρόμοια δυνατότητα βάζοντας first sync point & last και φέρνει τους υπότιτλους σε αυτό το διάστημα. Υπάρχει παρόμοια δυνατότητα με τον ήχο?

Δημοσ.

Προφανώς υπάρχει διαφορά στο framerate της ταινίας και του ήχου.

Μια λύση (που είναι και μοναδική αν χρησιμοποιήσεις τα ίδια αρχεία εικόνας και ήχου) είναι να κόψεις την ταινία και τον ήχο σε κομμάτια (κάθε κόψιμο θα γίνεται εκεί που ο αποσυγχρονισμός αρχίζει να γίνεται εμφανής) να τα συγχρονίσεις και μετά να τα ξανά ενώσεις.

Έτσι θα συγχρονίσεις την ταινία, δε θα έχεις απώλεια στην ποιότητα σε σχέση με την αρχική ταινία αφού δε θα χρειαστεί να κάνεις re-encoding αλλά θα δημιουργηθούν μικρά κενά στον ήχο για να επιτευχθεί ο συγχρονισμός.

Και για να διορθωθεί θα πρέπει να κόψεις σκηνές από την ταινία.

Θέλω να πιστεύω ότι έγινα κατανοητός.

Δημοσ.

Έγινες απόλυτα κατανοητός φίλε kastel, αλλά δε μου αρέσει πολύ αυτή η λύση. Αν δε βρούμε κάτι άλλο, θα το κάνω όμως. Τα framerates υποθέτω πως είναι ίδια, γιατί η ταινία προέρχεται από το ίδιο rip. Δε ξέρω αν βοηθήσουν τα δεδομένα από το media info. Για τον ήχο μου λέει αυτό που μου φαίνεται ότι θα μπορούσε να έχει να κάνει με το πρόβλημα, αλλά δεν ξέρω.

 

Alignment : Aligned on interleaves

Interleave, duration : 64 ms (1.53 video frames)

Interleave, preload duration : 192 ms

Δημοσ.

Στα audio streams δεν ορίζεται ακριβώς framerate, μπορείς μόνο να θεωρήσεις ότι υπάρχει ως αντιστοιχία με το framerate που θα έπρεπε να έχει ένα υποθετικό video stream με τέλεια συγχρονισμένο playtime με αυτό του audio stream.

 

Τώρα, η επέμβαση που απαιτείται για τη διόρθωση που πρέπει να κάνεις είναι λίγο tricky, αλλά εφικτή. Το παρακάτω είναι απόσπασμα από post μου όπου απαντούσα σε άλλον συμφορουμίτη που προσπαθούσε να κάνει το ίδιο σε αποσυγχρονισμένο TV-captured υλικό, θα πρέπει να δουλέψει και για τη δική σου περίπτωση:

 

Τέλος, υπάρχει και μία ακόμη προσέγγιση: Κάνεις demux το audio stream σε ξεχωριστό αρχείο (ακριβώς για τέτοιες δουλειές προτείνεται να κάνεις capture σε PCM audio αντί για compressed μορφές), το φορτώνεις σε ένα πρόγραμμα επεξεργασίας ήχου και κάνεις stretch (θετικό ή αρνητικό) όσο χρειάζεται για να αποκτήσει διάρκεια ακριβώς ίδια με του video stream. Στο δωρεάν Audacity π.χ. η λειτουργία αυτή βρίσκεται στο μενού Effect > Pitch and Tempo > Change Tempo... Στη συνέχεια, το επαναπολυπλέκεις στο AVI, αντικαθιστώντας το παλιό audio stream.

 

Δυστυχώς, απαιτείται επανακωδικοποίηση του audio stream.

Δημοσ.

Βρήκα λύση παιδιά και μετράει πολύ. Το Α είναι αυτό που είπε ο Kastel στην αρχή. Το Β είναι αυτό που ήθελα και στην ουσία το είπαν και ο Kastel αλλά και ο parsifal περί framerates, απλά υπάρχει η δυνατότητα να γίνει άμεσα και για την πλάκα με το virtuldubmod.

 

A) If the difference between audio and video is constant throughout the video:

 

Load the file into VirtualDub, VirtualDubMod, or NanDub.

Set BOTH "Video"(VirtualDub, VirtualDubMod and NanDub) and "Audio" (VirtualDub and NanDub - VirtualDubMOD>"Streams>"Stream list") to "Direct Stream Copy".

From the "Audio" dropdown menu, select "Interleaving" (For VirtualDubMOD, rightclick on the listed audiostream and then select "Interleaving")

Under "Audio skew correction", set an appropriate number of milleseconds positive in the box labelled "Delay audio track by"

Save with a new filename

 

B) If the difference increases as the movie plays:

 

From under the "Video" dropdown menu, select "Framerate" - and select "Change so video and audio durations match"

Save with a new filename

 

keep in mind 1000 milliseconds is 1 sec, so use this as an idea of what value to enter....i find a lot of times 300 seems to be the magic #

 

Επίσης εκεί υπάρχουν και άλλες επιλογές για ακριβής μετατροπές. το δοκίμασα και δουλεύει κανονικά. το βρήκα εδώ

 

http://forum.digital-digest.com/showthread.php?t=53858

Δημοσ.

Προσοχή με τη λύση Β!

 

Είναι η πιο εύκολη, όμως αλλάζει το frame rate του video (για την ακρίβεια, αλλάζει τις τιμές 2 πεδίων του AVI stream header: dwRate και dwScale, τα οποία καθορίζουν το reported frame rate). Για πολύ μικρές αποκλίσεις (π.χ. 25fps -> 24.99002fps) μπορεί να μην προκύψουν προβλήματα. Υπάρχουν όμως και προγράμματα που από τη μια περιμένουν standard frame rates ως είσοδο και από την άλλη τα υπολογίζουν με μεγάλη ακρίβεια δεκαδικού ψηφίου από τα AVI headers. Τέτοια προγράμματα μπορεί να γκρινιάξουν αν δουν τέτοια «περίεργα» frame rates.

Δημοσ.

Τώρα parsifal δε ξέρω πώς γίνεται αυτό, αλλά το αρχικό video με το τελικό, έχουν το ίδιο framarate, 23,976.

Δημοσ.

Δε μου βγαίνουν τα νούμερα που έδωσες (αρχικός ρυθμός αναπαραγωγής 23.976fps, ταινία => υποθέτω διάρκεια μεταξύ 90 και 100 λεπτών, απόκλιση -1.5 δευτερολέπτων για το audio stream προς το τέλος της ταινίας). Για να διορθωθεί η απόκλιση, το VirtualDub θα πρέπει να άλλαξε το frame rate του video stream σε X = [(23.976 * T) / (T - 1500)], όπου T το playtime του αρχικού video σε msec.

 

Επιβεβαιώνει και το VirtualDub, για ταινία 92min13sec 23.976fps, από την οποία έκοψα το τελευταίο 1.5sec του ήχου μόνο ώστε να εξομοιώσω τις συνθήκες που περιέγραψες:

 

post-4351-129063053703_thumb.png post-4351-12906305372_thumb.png

Δημοσ.

Η ταινία είναι 3 ώρες και 20 λεπτά. Πρόκειται για το lord of the rings. Ανεβάζω εικόνες και από τα δύο αρχεία. Όπως βλέπω έχει αλλάξει το bitrate.

 

50098676.jpg

75856387.jpg

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...