Conversor MKV para AVI
Publicado por Matheus (última atualização em 14/07/2010)
[ Hits: 14.335 ]
Homepage: matheusrosa.com.br
Pequeno script para conversão de arquivos Matroska (*.mkv) para Audio Video Interleave (*.avi). É necessário que se tenha o mencoder instalado.
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Autor: Matheus Rosa <matheus.sys@gmail.com>
# Data: 11/07/2010
# Descrição: Este script faz a conversão de arquivos MKV para AVI
# utilizando a ferramenta MEncoder
import sys
import os
def mostraInfo(info):
'''Mostra as informações básicas do arquivo
'''
print '=' * 100
print 'Arquivo MKV: ' + info['nomeArquivo']
print 'Tamanho: ' + info['tamanho']
print '=' * 100
def motraAjuda():
'''Mostra o uso do script
'''
print 'Conversor de MKV para AVI por Matheus Rosa'
print 'Uso: ' + sys.argv[0] + ' arquivo mkv'
def tamanhoLegivel(tamanho):
'''Retorna o tamanho legível para humanos
formatado
'''
sufixos = {1024: ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']}
if tamanho < 0:
return 'não foi possível obter o tamanho'
for sufixo in sufixos[1024]:
tamanho /= 1024
if tamanho < 1024:
return '{0:.1f} {1}'.format(tamanho, sufixo)
def main():
if len(sys.argv) < 2:
mostraAjuda()
arquivo = sys.argv[1]
if os.path.exists(arquivo):
extensao = arquivo[-3:]
tamanho = os.path.getsize(arquivo)
if extensao == 'mkv':
info = {'nomeArquivo':arquivo,'tamanho':tamanhoLegivel(tamanho)}
mostraInfo(info)
print 'Iniciando conversão...'
os.system('mencoder ' + arquivo + ' -oac copy -ovc copy -o '+ arquivo[:-4] + '.avi')
print 'Conversão concluída!'
else:
print 'Arquivo inválido. É necessário um arquvo MKV para continuar.'
else:
print 'Arquivo não existe'
if __name__ == '__main__':
main()
pySuporte - Script para controle de chamados armazena num txt.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como implementar Raid (0, 1, 5, 6, 10 e 50)
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
Como programar um sistema de controle para distribuições linux em c? (0)
Compartilhar ZEBRA ZD220 na rede (2)
Como programar um software que seja utilizado para coleta de dados em ... (1)









