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

Script για 2-pass encoding


pkoutsias

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

Καταρχήν καλησπέρα.

 

Πρόσφατα αγόρασα ένα MP4/MP3 player το οποίο υποστηρίζει αρχεία video .avi . Το πρόγραμμα που είχε μέσα για τη μετατροπή των αρχείων δεν με ικανοποίησε τόσο σε θέμα ποιότητας όσο και σε θέμα παραμετροποίησης και για αυτό είπα να φτιάξω ένα scriptάκι για να μετατρέπω τα αρχεία μόνος μου στο linux.

 

Το περιεχόμενο είναι αυτό (πρόκειται για nautilus script)

 

>#!/bin/bash
#
#    Copyright (C) 2008 Panagiotis Koutsias (panoskoutsias_at_hotmail_com)
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Name: Any2avi
# Type: Nautilus Script
#
# Dependency : mencoder
#         : zenity
#
# To install it just copy this file in your ~/.gnome2/nautilus-scripts folder
#
# Use: Select the files you want to convert in nautilus,
# right click on one of them and from the context menu "Scripts" choose Any2avi
#
# ToDo: Identify files into folders
#


#Option to handle files with spaces
IFS=$'\n'
   
#Get Subtitles position
SUBPOS=`zenity --entry --text="Enter the position of the subtitles:"`
VBR=`zenity --entry --text="Enter the desired video bitrate:"`
ABR=`zenity --entry --text="Enter the desired audio bitrate:"`

   #Convert all files
   for FILE in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do

       #Get file name
       FILENAME=`basename $FILE`

       #Remove extension to get subtitle
       EXTN=`echo $FILE | awk -F "." '{print $NF}'`
       SUBTITLE=`basename $FILE .$EXTN`

       #Unpack bitstream
       avidemux2_cli --nogui --force-unpack  --load $FILENAME --audio-map --save-unpacked-vop $FILENAME.vop

       #Backups
       mv $FILENAME $FILENAME~

       #Convert file
       rm -f divx2pass.log 2>/dev/null

       nice -n 19 \
       mencoder $FILENAME.vop \
           -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=$VBR:vhq:keyint=250:threads=2:vpass=1 \
           -oac mp3lame -lameopts cbr:br=$ABR \
           -ffourcc XVID \
           -vf scale=320:-2,crop=320:240,expand=320:240,harddup \
           -af resample=44100:0:0 \
           -o $FILENAME

       nice -n 19 \
       mencoder $FILENAME.vop \
           -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=$VBR:vhq:keyint=250:threads=2:vpass=2 \
           -oac mp3lame -lameopts cbr:br=$ABR \
           -ffourcc XVID \
           -vf scale=320:-2,crop=320:240,expand=320:240,harddup \
           -af resample=44100:0:0 \
           -sub $SUBTITLE.srt -subfont-text-scale 4.5 -subcp UTF-8 -subpos $SUBPOS \
           -o $FILENAME
       
       #Cleanup
       rm $FILENAME.vop
       rm divx2pass.log

   done

Το script λειτουργεί σωστά και είμαι ικανοποιημένος.

 

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

 

Ακούω τις γνώμες σας λοιπόν...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Έκανα κάποιες αλλαγές, φαίνεται πιο ολοκληρωμένο τώρα...

 

>#!/bin/bash
#
#    Copyright (C) 2008 Panagiotis Koutsias (panoskoutsias_at_hotmail_com)
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Name: Any2avi
# Type: Nautilus Script
#
# Dependency : mencoder
#         : zenity
#         : avidemux2_cli
#
# To install it just copy this file in your ~/.gnome2/nautilus-scripts folder
#
# Use: Select the files you want to convert in nautilus,
# right click on one of them and from the context menu "Scripts" choose Any2avi
#
# ToDo: Identify files into folders
#


#Option to handle files with spaces
IFS=$'\n'
   
#Get Subtitles position
SUBPOS=`zenity --entry --text="Enter the position of the subtitles:"`
VBR=`zenity --entry --text="Enter the desired video bitrate:"`
ABR=`zenity --entry --text="Enter the desired audio bitrate:"`

   #Convert all files
   for FILE in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do

       #Get file name
       FILENAME=`basename $FILE`

       #Remove extension to get subtitle
       EXTN=`echo $FILE | awk -F "." '{print $NF}'`
       SUBTITLE=`basename $FILE .$EXTN`

       #Unpack bitstream
       xterm -e "avidemux2_cli --nogui --force-unpack  --load $FILENAME --audio-map --save-unpacked-vop $FILENAME.vop"

       #Backups
       mv $FILENAME $FILENAME~

       #Convert file
       rm -f divx2pass.log 2>/dev/null

       xterm -e "nice -n 19 mencoder $FILENAME.vop -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=$VBR:vhq=4:vhq:threads=2:vpass=1:turbo -nosound -ffourcc XVID -vf scale=320:-2,crop=320:240,expand=320:240,harddup -o /dev/null"

       xterm -e "nice -n 19 mencoder $FILENAME.vop -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=$VBR:vhq=4:vhq:threads=2:vpass=2 -oac mp3lame -lameopts cbr:br=$ABR -ffourcc XVID -vf scale=320:-2,crop=320:240,expand=320:240,harddup -af resample=44100:0:0 -sub $SUBTITLE.srt -subfont-text-scale 4.5 -subcp UTF-8 -subpos $SUBPOS -o $FILENAME"
       
       #Cleanup
       rm $FILENAME.vop
       rm divx2pass.log

   done

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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