Como usar o h264/x264? [Resolvido]

Iniciado por ElMago, 18 de Janeiro de 2011, 17:27

tópico anterior - próximo tópico

ElMago

Não consigo usar nem pelo Ffmpeg nem pelo MEncoder.
O gui que me ensina nos parametros é o Hyper Video Converter....Mesmo no Terminal dá erro. P/ qualquer formato....Ja tenho o libx264-85, x264 e h264enc instalados....
Ex: ffmpeg -i video.avi -vcodec libx264 video_de_saida.xxx

Olha o erro:

FFmpeg version SVN-r0.5.1-4:0.5.1-1ubuntu1, Copyright (c) 2000-2009 Fabrice Bellard, et al.
 configuration: --extra-version=4:0.5.1-1ubuntu1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
 libavutil     49.15. 0 / 49.15. 0
 libavcodec    52.20. 1 / 52.20. 1
 libavformat   52.31. 0 / 52.31. 0
 libavdevice   52. 1. 0 / 52. 1. 0
 libavfilter    0. 4. 0 /  0. 4. 0
 libswscale     0. 7. 1 /  0. 7. 1
 libpostproc   51. 2. 0 / 51. 2. 0
 built on Mar  4 2010 12:35:30, gcc: 4.4.3

Seems stream 0 codec frame rate differs from container frame rate: 29999.00 (29999/1) -> 29.97 (30000/1001)
Input #0, avi, from 'video.avi':
 Duration: 02:17:51.07, start: 0.000000, bitrate: 477 kb/s
   Stream #0.0: Video: mpeg4, yuv420p, 640x272 [PAR 1:1 DAR 40:17], 29.97 tbr, 29.97 tbn, 29999 tbc
   Stream #0.1: Audio: mp2, 48000 Hz, stereo, s16, 64 kb/s
Output #0, avi, to 'fillme.avi':
   Stream #0.0: Video: libx264, yuv420p, 640x272 [PAR 1:1 DAR 40:17], q=2-31, 200 kb/s, 90k tbn, 29.97 tbc
   Stream #0.1: Audio: mp2, 48000 Hz, stereo, s16, 64 kb/s
Stream mapping:
 Stream #0.0 -> #0.0
 Stream #0.1 -> #0.1
[libx264 @ 0x897fcb0]broken ffmpeg default settings detected
[libx264 @ 0x897fcb0]use an encoding preset (vpre)
Error while opening codec for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height



To tentando o h264 porque simplesmente desisti de converter para .rmvb. O RealProducer para Linux é uma porcaria e não funciona. Emular ficou impossivel, e nem quero quebrar cabeça p/ conseguir....
Pesquisando descobri o poder do h264, já que eu quero compactar com boa qualidade. Pra isso ouvi dizer que ele compacta quase como o .rmvb e a qualidade é até melhor.
Bom, podem falar mal, mas eu adorava o .rmvb.
Eu vi por aí que um .avi de 700 MB com rv40 (que é o .rmvb) pode ficar em 320 MB ou menos, e com o h264 (com qualquer formato) ele fica com 370 ou menos, ou seja, a diferença de compactação é pequena, e a qualidade bem melhor do que o excelente rv40.
Mas não consigo......

ElMago

#1
Ele pede para usar um codificador chamado vpre....
Me lembrei de um site que mostraram o parametro -vpre slow , exemplo ffmpeg -i video.avi -vcodec libx264 -vpre slow filme.xxx
Dá erro, alegando não aceitar o slow. Coloquei o hq no lugar e ele aceitou..Só que eu quero compactar, e hq é pra alta qualidade.
Mesmo usando o parametro de video bitrate como -b 200k ou mais, eu consigo compactar?

[Edição] Não sei se compacta, mas sei que demora muito...Deixei mais de 20 minutos e apenas tinha convertido  1 MB um video de mais de 800 MB....Desisto...
Não sei se é o -hq ...
Nao acho nada à respeito desse "-vpre" .

ElMago

#2
Acertei o comando no Mencoder (sempre ele rsrs)
Dicas aqui > https://lists.ubuntu.com/archives/ubuntu-br/2009-January/050774.html
O comando mostrado no Mencoder para audio é o -ovc lavc -lavcopts, e coloquei -copy no lugar ficando assim > mencoder videoorigem.avi -ovc x264 -oac copy -x264encopts bitrate=200 -o videofinal.avi
Mas, tá demorando, embora está mais rapido que antes...
Agora, deve ter alguma forma de fazer o Mencoder aceitar com alteração do audio, mas nao sei como.
To fazendo um teste num video menor, depois posto o resultado.

ElMago

#3
Pois é, e eu pensando que nao iria demorar tanto....quase duas horas e ainda estava em 9%...desisti. Descobri que os  programas não vem com suporte à x264, tem que recompilar o Ffmpeg...isso é f***. Aqui a informação > http://www.gdhpress.com.br/blog/recompilando-ffmpeg/  E veja o que o Carlos Morimoto diz da compilação no site...

Acabei sobescrevendo o filme  >:(, (nao fiz cópia desta vez)...To ripando de novo ...
O Ffmpeg2Theora (que demorou muito), compactou em mais ou menos 270 MB com ótima qualidade o filme de mais de 800 MB, mas a imagem fica dando erro de vez em quando, mesmo tentando com um tamanho maior. Essa foi por pouco.
Até o HandBrake não consegui, e apenas achei tutos para ripagem, e excluiu de vez o .avi....
Vou ver se recompilo o Ffmpeg.

ElMago

Olha, compilei o x264 e Ffmpeg como foi dito pelo Morimoto..Apenas no Ffmpeg que foi negado o libfaad, então tirei ele da linha e compilei.
Agora uma dúvida: Após ter terminado a compilação e ter reinstalado os progs que a compilação desinstalou, apareceu no gerenciador de atualização os x264 e Ffmpeg.
Atualizei os pacotes pedidos pelo sistema, mas desmarquei os dois programas, e, até no Synaptic os dois ficam com o ícone cinza com uma exclamação solicitando atualizar. A duvida é se eu atualizar, eu ponho toda a compilação à perder?
É porque o Ffmpeg agora está completo, e a minha dúvida é se na atualização ele vai voltar como era no padrão do Ubuntu, ou seja, incompleto por questões de patente.
Pessoal, preciso da ajuda e resposta de voces.

irtigor

Sim, se você atualizar a versão compilada pode ser sobre escrita (vai acontecer se se for pro mesmo local, com o mesmo nome). Acho que uma saída é colocar o pacote numa "lista negra":
http://www.debianadmin.com/how-to-prevent-a-package-from-being-updated-in-debian.html
https://help.ubuntu.com/community/PinningHowto

Solid One

se você tiver instalado uma versão mais atual do mencoder só para poder converter vídeos x264 com codec de áudio AAC, tem uma alternativa melhor que compilar do código-fonte: puxe o mencoder do medibuntu. é só adicionar o repositório do medibuntu de acordo com o link abaixo:

https://help.ubuntu.com/community/Medibuntu#Adding%20the%20Repository

e botar pra atualizar o mencoder com "sudo apt-get install mencoder".

o mencoder do medibuntu é diferente do mencoder padrão dos repositórios. o do medibuntu vem com codecs proprietários inclusos (AAC e AMR são exemplos), e é o recomendado para poder usar em conjunto com programas tipo Mobile Media Converter no Ubuntu. se você tiver o mencoder dos repositórios padrões instalado, o comando acima o substituirá.

ElMago

#7
Pessoal, peço desculpas por demorar de responder, mas é que estava tentando resolver outro problema que surgiu, onde achei que foi por ter compilado, daí acabei colocando pra versão do repositorio do Ubuntu, mas continuaram os mesmos problemas. Acabei compilando denovo ....Depois vou dizer qual é o problema.

Olha, apos compilar conforme diz o Morimoto, fui dar o comando  pra converter com o ffmpeg, e a mensagem de erro agora veio com sugestões que me ajudaram a saber o que era o -vpre. Ele é um parametro que dá suporte à opções de velocidade de conversão, etc... Pediu para colocar medium...pode colocar, fast, faster ... até ultrafast.
Demorou bem a conversão, mas pelo que vi, acho que o rv40 (rmvb) já era. O video que havia ripado com transcodificação em xvid/avi (que era de + - 8 GB) que ficou com 875,5 MB, converti para o formato x264/avi, e ficou com boa qualidade e ainda com uma compressão excelente, ou seja, ficando com 274,2 MB. Realmente inacreditável!!!!!!!!
Compilem, vale a pena!




ElMago

#8
irtigor, obrigado por responder, realmente tirou de vez minha duvida. Excelente as dicas, e, acho que basta apenas trancar a versão pelo Synaptic, onde já havia feito isso por lá com outros programas. Então tranquei o ffmpeg e x264 apenas pelo Synaptic. Se eu estiver errado, me corrija.

Solid One, o MEncoder converte usando o x264, embora demore muito e cancelo logo, mas to pensando em compilar....acho que o suporte ao x264 vai ficar melhor.
Só que fiquei com uma dúvida; mesmo já tendo o rep. Medibuntu, é preciso adicionar o Medibuntu novamente para o MEncoder? O que está aqui não baixa?



ElMago

#9
Agora, o problema no qual estou enfrentando, e por isso demorei para postar aqui.
Quando converti de xvid (com extensão .avi) para x264 (com extensão .avi), no qual fiquei assombrado com a compressão e qualidade, resolvi então testar e converter para x264/mpg, ou seja, usando o codec de video x264 com extensão final em mpg para que eu possa usar o Mplex e colocar 2 audios e com uma qualidade ainda melhor, já que ainda na ripagem eu escolhi o bitrate errado.
Para a minha surpresa, o video nao aparece no resultado final, e só o áudio. Tentei com o Mencoder, mas nao adianta, o MPlex nao aceita o .m2v.
Tentei de todas as formas possiveis, mesmo usando o comando -vcodec copy ou -ovc copy, e depois passar para .m2v (tambem com -vcodec copy ou -ovc copy, que é o mais lógico), mas nada de o MPlex aceitar.
Até o ffmpeg2theora, que consegue manter a compressão não conseguiu fazer o Mplex reconhecer o .m2v.
Só consigo usar o proprio mpeg1 ou mpeg2 para passar para .mpg (e depois .m2v) e fazer o Mplex aceitar, mas não dá!!!!!!!!!!!!!!!!!!!! O formato mpeg1 ou mpeg2 põe toda a compressão à perder, e para ficar com + - a mesma qualidade do video convertido outrora em x264/avi
com 274,2 MB de tamanho, é preciso colocar 700 Kbit/s, que deixa o video com pouco mais de 700 MB.
Minha esperança seria a nova versão do Mjpegtools, a 2.0, onde vem com o Mplex, mas não consegui achar nada a respeito se ele já suporta outros formatos que não sejam Mpeg puro.
Será que o x264 não aceita o .mpg? Não é p/ aceitar, já que H.264 faz parte do MPEG-4?

[Edição] Realmente não tem como. A extensão para acompanhar o mpeg4 é o mp4, porque se colocar .mpg, dá conflito pela compressão ser diferente e não aguenta.
Testei o mp4/mpeg4 e converteu mas o Mplex nao aceitou. Testei o mp4/x264 e tmbem converteu mas nao ficou a mesma qualidade, nem a compressão, pq mesmo o x264 sendo parte do mpeg4, é uma outra parte do mpeg4 (parte 10) e a compressão não aguenta e nem o Mplex aceitou.

ElMago

#10
Coloquei como resolvido, pq o problema principal, no qual foi motivo p/ abrir este tópico, foi solucionado.
Quanto ao outro problema, foi que eu queria fazer algo impossivel com os formatos. Nao é questão nem dos programas ou SO, mas do suporte e diferença de cada formato e extensão disponivel no mercado. Pois se preciso do mpg pra certas tarefas, nao conseguirei manter a qualidade com a mesma compressão do .x264, porque por ser outro formato/extensão, é uma outra compressão, e neste caso é pequena, o que deixa o arquivo bem maior. Massssssss, se alguem souber de algum truque, estarei aqui pra aprender rsrsrs.


Minha intenção é colocar varios videos num só DVD , e com menu.
Farei um topico para este assunto.

[Edição] O DVD-Divx, não deixa de ser um Dvd de dados, porém é possivel de algum tempo pra cá, colocar menus personalizados com o Dvd de dados no caso do Divx, que pode até suportar se não me engano o x264.

ElMago

Aqui o tópico à respeito.
Pois achei um único programa para Linux capaz de fazer tal coisa. E talvez seja equivalente aos poucos programas da area para Windows, pois se baseia no estilo do Dvd-Author. Coisa boa.

http://ubuntuforum-br.org/index.php/topic,78385.0.html

platao

Boa ElMago, estou acompanhando seus tutos e duvidas.
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

MauricioLopes

Não sei se ajuda, mas tem um programa muito bom para converter H.264 e existe versão para o Linux. Trata-se do Handbrake. É o melhor que conheço para esse trabalho, em qualquer plataforma.