Converta vídeo mkv / h264 para que possa ser reproduzido em um telefone Sony Ericsson “mid-range”. (usando o Ubuntu)

1

Como um pequeno experimento, eu pensei em converter alguns vídeos / filmes / séries de TV em um formato que pudesse ser reproduzido no meu K850, mas para ser um pouco mais genérico nessa questão, digamos "telefone Sony Ericsson mid-range" já que todos eles se comportam mais ou menos da mesma forma e tem a mesma resolução de tela (240 x 320).

Estou procurando ferramentas baseadas em linha de comando (para o Ubuntu), já que estou pensando em escrever um script "convert and move" mais tarde se ele for bem-sucedido.

Grande parte do vídeo que tenho está codificado em mkv / h264, mas como isso não é suportado pelo telefone, acho que preciso convertê-lo em algum vídeo mp4 / mpeg4 de baixa qualidade.

Depois de algum googling, parece que um bom candidato para o trabalho é ffmpeg , mas isso parece ser uma ferramenta muito versátil com muitos truques mágicos.

Estou no caminho certo? E se sim, como eu uso o ffmpeg para fazer isso?

Obrigado Johan

Atualizar : Depois de plaquear um pouco com ffmeg notei que ele usa apenas 1 dos meus 4 núcleos, então a transcodificação demora uma eternidade. Eu encontrei um arg chamado -threads, mas isso não mudou muito, talvez eu tenha entendido errado.

Eu também descobri que algo assim toca no telefone.

ffmpeg -i Mythbusters\ S1D1_1.mkv -threads 4 -t 180 -vcodec mpeg4 -r 15 -s 320x240 Mythbusters\ S1D1_1_mini.mp4

Era possível usar 3gp / h263, mas a qualidade era realmente inútil.

ffmpeg -i Mythbusters\ S1D1_1.mkv -t 180 -vcodec h263 -acodec libfaac -s cif  Mythbusters\ S1D1_1_cif.3gp

E parece que o mp4 / h264 também é possível e o resultado é ok, graças a esta questão , este parece usar mais de um núcleo também, então foi um pouco mais rápido para mim.

ffmpeg -i Mythbusters_S1D1_1.mkv -t 180 -acodec libfaac -ab 60k -s 320x240 -vcodec libx264 -b 500k -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +mixed_refs -me_method umh -subq 6 -trellis 1 -refs 5 -coder 0 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 500k -maxrate 768k -bufsize 2M -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 13 -threads 0 -f mp4 Mythbusters_S1D1_1_qvga.mp4

Atualizar : Eu tentei usar HandBrakeCLI e não há problema em criar um novo arquivo que parece ser o mesmo que o criado com ffmpeg com algo parecido com isto.

HandBrakeCLI -i Mythbusters_S1D1_1.mkv --size 100 -E faac -B 60 --maxHeight 240 -r 15 -e x264 -o Mythbusters_S1D1_1_hand.mp4

Mas esse não jogou no telefone ...

Eu encontrei isso no manual oficial:

If you transfer video clips using another program than Media Go™, we recommend that you select H.264 Baseline profile video, up to QVGA at 30 fps, VBR 384 kbps (max 768 kps) with AAC+ audio at 128 kbps (max 255 kbps), 48 kHz and stereo audio in mp4 file format.

A ideia de usar o H264 parece estar correta.

    
por Johan 29.08.2009 / 09:55

2 respostas

1

Eu não consigo melhor do que este exemplo ffmpeg:

ffmpeg -i Star_Wars.mkv -acodec libfaac -ab 60k -s 320x240 -vcodec libx264 -b 500k -flags + loop -cmp + croma -partições + parti4x4 + partp8x8 + partb8x8 -flags2 + mixed_refs -m e_method umh -subq 6 -trellis 1 -refs 5 -coder 0 -me_range 16 -g 250 -keyint_min  25 -sc_threshold 40 -i_qfactor 0,71 -bt 500k -maxrate 768k -bufsize 2M -qcomp 0 .6 -qmin 10 -qmax 51 -qdiff 4-level 13 -reads 0 -f mp4 Star_Wars.mp4

Isto converte um episódio de tv de 50 minutos (4: 3) em um arquivo de 70Mb (era de 700Mb antes)

e um filme de 2h (16: 9) em um arquivo de 470Mb (era 1700Mb antes)

    
por 01.09.2009 / 21:41
4

Por que não tentar Handbrake ? Está disponível para Linux, Mac OS e Windows e também tem uma interface de linha de comando, se você quiser.

Aqui é um guia para o CLI do Handbrake.

    
por 29.08.2009 / 12:32