Να γράψω τον τρόπο που εδώ και 1 χρόνο χρησιμοποιώ για μαζική μετατροπή αρχείων σε H264/H265 χρησιμοποιώντας ffmpeg μέσω της παραθυρικής εφαρμογής QWinFF.
Tις εντολές που παρέθεσα τις έχω βρει στο διαδίκτυο και έχω αλλάξει 1-2 πραγματάκια με trial & error διότι δεν λειτουργούν όλες οι εντολές του ffmpeg με τον ίδιο ακριβώς τρόπο στο QwinFF, κάποια πράγματα εξάλλου όπως το path και ο ήχος τα επιλέγεις σε άλλα πεδία. Για παράδειγμα, θα παρατηρήσετε ότι στην Nvidia χρησιμοποιώ σταθερό bitrate (-cbr), στην AMD μεταβλητό. Δεν μπορούσα να τα κάνω να λειτουργήσουν αλλιώς μέσω Qwinff. Υποτίθεται ότι το CBR είναι λιγότερο αποδοτικό στο τελικό μέγεθος αλλά πιο συμβατό με players και Youtube/Vimeo, ωστόσο εγώ απτές διαφορές δεν έχω δει.
Ότι έχω σε bold στις 2 εντολές είναι παραμετροποιήσιμο από εμάς.
Συγκεκριμένα και απλοϊκά:
Για Nvidia:
"hevc" = h265,
"h264" = h264,
"yuv420p10" = 10bit output
"yuv420" = 8bit output
"preset hq" = high quality
"preset hp" = high performance
"20000Κ" = bitrate, (από δοκιμές μου σε 1080p high quality από πηγή prores 422 από 7500Κ τιμή και άνω δύσκολα καταλαβαίνεις διαφορά, πρέπει να πλησιάσω την 32άρα στο μισό μέτρο για να δω λιγότερη λεπτομέρεια στις υφές. Ας πούμε με 10000Κ είμαστε οκ. Αναφέρομαι σε σκηνές με λίγη κίνηση. Σε σκηνές δράσης δεν το έχω δοκιμάσει αλλά καλό είναι να ανεβάζουμε bitrate.
Για AMD:
"hevc" = h265,
"h264" = h264,
"quality balanced" = μέση ποιότητα και ταχύτητα
"quality quality" = ποιότητα σε βάρος ταχύτητας
"20M' = το μέσο bitrate (από δοκιμές που έχω κάνει, από ότι γράφω παραπάνω για Nvidia προσθέστε λίγο παραπάνω)
"25Μ" = το μέγιστο bitrate που θα επιτραπεί στον codec σε δύσκολες σκληνές (πχ γρήγορη κίνηση ή πλάνο με μεγάλη λεπτομέρεια). Καλό είναι αυτό να το θέτουμε κάτω του 1.5Χ του μέσου.
Nα τονίσω εδώ ότι με AMD κάρτα ΔΕΝ μπορούμε να κάνουμε encoding σε 10bit, μόνο decoding.
Όποιος έχει περισσότερες γνώσεις σε εντολές ffmpeg μπορεί να πειραματιστεί με το QwinFF και να γράψει τα αποτελέσματά του εδώ. Eιδικά για κάρτες AMD δεν έχω βρει άλλη εφαρμογή που να επιτρέπει batch transcoding μέσω GPU. Για Nvidia υπάρχουν αλλά συνήθως είναι επι πληρωμή.
- Eγκαθιστούμε το QWinFF
- Στον υποφάκελο /tools της εγκατάστασης αν θέλουμε αντικαθιστούμε τα αντίστοιχα αρχεία από την τελευταία έκδοση του ffmpeg.
- Ανοίγουμε το QWinFF και κάνουμε drag n drop τα αρχεία που επιθυμούμε. Ανοίγει τα πάντα.
- Στο παράθυρο που εμφανίχεται πατάμε next.
- Επιλέγουμε output path. Εγώ συνήθως αφήνω την επιλογή της αυτόματης δημιουργίας υποφακέλου και την οργάνωση των αρχείων την κάνω μετά.
- Στα output settings αφήνουμε το "convert to" σε mp4 και πατάμε edit στο preset
- Στο tab Audio θέτουμε sample rate και bitrate. Μπορούμε να μην συμπληρώσουμε τίποτα, απλά ο ήχος θα είναι 44000HZ και 128kb/s. Συνήθως εγώ βάζω 48000 και 190kb/s για χρήση online.
- Στο tab Video ΔΕΝ συμπληρώνουμε τίποτα πλην της ανάλυσης αν θέλουμε το τελικό αρχείο να γίνει downscale ή upscale. Oμοίως και στο ΤΙΜΕ, δεν θέλουμε προφανώς να κάνουμε εδώ cut ή να αλλάξουμε ταχύτητα.
- Στο tab advanced επικολάμε τις παρακάτω εντολές:
- Για κάρτα γραφικών Nvidia (pascal): "-vcodec hevc_nvenc -pix_fmt yuv420p10 -preset hq -cbr 1 -vb 20000k"
- Για κάρτα γραφικών AMD (polaris): "-c:v hevc_amf -quality balanced -usage transcoding -b:v 20M -bufsize 16M -maxrate 25M"
- Ok -> Next ->Start και αρχίζει η μετατροπή.
Tις εντολές που παρέθεσα τις έχω βρει στο διαδίκτυο και έχω αλλάξει 1-2 πραγματάκια με trial & error διότι δεν λειτουργούν όλες οι εντολές του ffmpeg με τον ίδιο ακριβώς τρόπο στο QwinFF, κάποια πράγματα εξάλλου όπως το path και ο ήχος τα επιλέγεις σε άλλα πεδία. Για παράδειγμα, θα παρατηρήσετε ότι στην Nvidia χρησιμοποιώ σταθερό bitrate (-cbr), στην AMD μεταβλητό. Δεν μπορούσα να τα κάνω να λειτουργήσουν αλλιώς μέσω Qwinff. Υποτίθεται ότι το CBR είναι λιγότερο αποδοτικό στο τελικό μέγεθος αλλά πιο συμβατό με players και Youtube/Vimeo, ωστόσο εγώ απτές διαφορές δεν έχω δει.
Ότι έχω σε bold στις 2 εντολές είναι παραμετροποιήσιμο από εμάς.
Συγκεκριμένα και απλοϊκά:
Για Nvidia:
"hevc" = h265,
"h264" = h264,
"yuv420p10" = 10bit output
"yuv420" = 8bit output
"preset hq" = high quality
"preset hp" = high performance
"20000Κ" = bitrate, (από δοκιμές μου σε 1080p high quality από πηγή prores 422 από 7500Κ τιμή και άνω δύσκολα καταλαβαίνεις διαφορά, πρέπει να πλησιάσω την 32άρα στο μισό μέτρο για να δω λιγότερη λεπτομέρεια στις υφές. Ας πούμε με 10000Κ είμαστε οκ. Αναφέρομαι σε σκηνές με λίγη κίνηση. Σε σκηνές δράσης δεν το έχω δοκιμάσει αλλά καλό είναι να ανεβάζουμε bitrate.
Για AMD:
"hevc" = h265,
"h264" = h264,
"quality balanced" = μέση ποιότητα και ταχύτητα
"quality quality" = ποιότητα σε βάρος ταχύτητας
"20M' = το μέσο bitrate (από δοκιμές που έχω κάνει, από ότι γράφω παραπάνω για Nvidia προσθέστε λίγο παραπάνω)
"25Μ" = το μέγιστο bitrate που θα επιτραπεί στον codec σε δύσκολες σκληνές (πχ γρήγορη κίνηση ή πλάνο με μεγάλη λεπτομέρεια). Καλό είναι αυτό να το θέτουμε κάτω του 1.5Χ του μέσου.
Nα τονίσω εδώ ότι με AMD κάρτα ΔΕΝ μπορούμε να κάνουμε encoding σε 10bit, μόνο decoding.
Όποιος έχει περισσότερες γνώσεις σε εντολές ffmpeg μπορεί να πειραματιστεί με το QwinFF και να γράψει τα αποτελέσματά του εδώ. Eιδικά για κάρτες AMD δεν έχω βρει άλλη εφαρμογή που να επιτρέπει batch transcoding μέσω GPU. Για Nvidia υπάρχουν αλλά συνήθως είναι επι πληρωμή.
Last edited: