Eu tentei converter um arquivo de vídeo para um formato desejado usando o FFmpeg através do WinFF. Eu tenho demandas específicas sobre alguns aspectos do arquivo de saída, enquanto outros aspectos devem ser definidos de uma forma que dará a melhor qualidade na saída. Para esclarecer - eu quero que o meu arquivo de saída seja:
- 1600 × 900
- no contêiner mkv
- usando o decodificador de vídeo H.264
- usando o decodificador de áudio aac
- proporção de 16: 9 (obviamente ...)
- mesmo volume de áudio como entrada
- 60 fps
- com nada recortado ou imagem perdendo sua proporção original.
Não necessariamente
- usando todos os 48 canais de áudio.
Qualquer outro aspecto do arquivo que não afete os listados acima deve oferecer a melhor qualidade possível. Bem, não literalmente. Eu não quero um arquivo que levaria metade do meu disco rígido, ou que levaria uma semana para converter.
De qualquer forma, este foi um pouco do que estou fazendo atualmente. Eu tentei descobrir tudo sozinho, mas o que eu fiz me deu um arquivo .mkv vazio junto com um log e um arquivo de 234,5 mb .log. [Alguma coisa]. Mais do que isso - a conversão demorou muito. Eu estava convertendo um Big Buck Bunny de 10 minutos de duração, e levou algo entre 1-2h (provavelmente). Eu vou converter alguns arquivos longos de 2h, então sim, um dia por arquivo seria demais ...
Aqui vão os parâmetros que eu usei.
1º passe:
avconv -threads 8 -i bbb_sunflower_native_60fps_normal.mp4 \
-acodec aac -vcodec h264 -b:v 50000k -r:v 60 -filter:v yadif,scale=1600:900 \
-aspect 16:9 -b:a 320k -r:a 96000 -ac 48 -vol 256 -f null -an \
-passlogfile "/home/wnerw/Wideo/bbb_sunflower_native_60fps_normal.log" \
-pass 1 -y /dev/null
2º passe
avconv -threads 8 -y -i bbb_sunflower_native_60fps_normal.mp4 -acodec aac \
-vcodec h264 -b:v 50000k -r:v 60 -filter:v yadif,scale=1600:900 -aspect 16:9 \
-b:a 320k -r:a 96000 -ac 48 -vol 256 \
-passlogfile "/home/wnerw/Wideo/bbb_sunflower_native_60fps_normal.log" -pass 2 \
"/home/wnerw/Wideo/bbb_sunflower_native_60fps_normal.mkv"
Eu sei, valores como 50000k e 96000 parecem loucos, mas eu só queria testar isso.
Por fim, o que estou procurando!
- O que eu fiz de errado na primeira vez?
- Quais parâmetros me darão a saída desejada?
Se alguém fosse super legal, eu realmente apreciaria dois conjuntos de parâmetros - um para uma saída melhor, mas não louca, e um para o melhor que eu poderia realmente conseguir. Eu sei que o último pode queimar minha CPU, levar um ano para processar ou ser 10 × maior do que todo o meu disco. É só pela minha curiosidade.
EDIT Aqui vai a saída do terminal do 1º Passe. Na verdade, agora eu lembrei que o segundo passe não aconteceu. Eu não posso recuperar o que estava no terminal onde as coisas falharam ao ir para a segunda passagem. Eu apenas pressionei enter e o terminal inteiro desapareceu. Eu não posso esperar pela 1ª passagem para completar agora, leva muito tempo.
Saída do terminal:
avconv version 9.16-6:9.16-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers
built on Aug 10 2014 18:16:02 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
/home/wnerw/Pobrane/bbb_sunflower_native_60fps_normal.mp4':
Metadata:
major_brand : isom
minor_version : 1
compatible_brands: isomavc1
creation_time : 2013-12-24 11:10:47
title : Big Buck Bunny, Sunflower version
artist : Blender Foundation 2008, Janus Bager Kristensen 2013
comment : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
genre : Animation
composer : Sacha Goedegebure
Duration: 00:10:34.56, start: 0.000000, bitrate: 10487 kb/s
Stream #0.0(und): Video: h264 (High), yuv420p, 4000x2250 [PAR 1:1 DAR 16:9], 10002 kb/s,
60 fps, 60 tbr, 60k tbn, 120 tbc
Metadata:
creation_time : 2013-12-24 11:10:47
Stream #0.1(und): Audio: mp3, 48000 Hz, stereo, s16p, 160 kb/s
Metadata:
creation_time : 2013-12-24 11:10:49
Stream #0.2(und): Audio: ac3, 48000 Hz, 5.1, fltp, 320 kb/s
Metadata:
creation_time : 2013-12-24 11:10:49
[libx264 @ 0x16a36e0] using SAR=1/1
[libx264 @ 0x16a36e0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x16a36e0] profile Main, level 5.0
Output #0, null, to '/dev/null':
Metadata:
major_brand : isom
minor_version : 1
compatible_brands: isomavc1
creation_time : 2013-12-24 11:10:47
title : Big Buck Bunny, Sunflower version
artist : Blender Foundation 2008, Janus Bager Kristensen 2013
comment : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
genre : Animation
composer : Sacha Goedegebure
encoder : Lavf54.20.4
Stream #0.0(und): Video: libx264, yuv420p, 1600x900 [PAR 1:1 DAR 16:9], q=-1--1, pass 1,
50000 kb/s, 90k tbn, 60 tbc
Metadata:
creation_time : 2013-12-24 11:10:47
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> libx264)
Press ctrl-c to stop encoding
frame= 5 fps= 0 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbit
frame= 13 fps= 13 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbit
frame= 21 fps= 13 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbit
frame= 29 fps= 14 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbit
frame= 37 fps= 14 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbit
frame= 45 fps= 14 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbit
frame= 51 fps= 14 q=0.0 size= 0kB time=10000000000.00 bitrate= 0.0kbit
EDIT2 Como sugerido, tentei executar com o parâmetro -f matroska
. Desta vez eu também tentei fazer apenas uma passagem, pois achei que a segunda consumia muito tempo.
Aqui está um comando que eu usei para converter:
avconv -threads 8 -y -i bbb_sunflower_native_60fps_normal.mp4
-acodec aac -vcodec h264 -f matroska -b:v 10000k -r:v 60
-filter:v yadif,scale=1600:900 -aspect 16:9 -b:a 320k r:a 96000
-ac 48 -vol 256 "bbb_sunflower_native_60fps_normal.mkv"
Mas, infelizmente, o terminal fecha assim que eu pressiono enter para confirmar a saída do avconv. Eu tentei o mesmo comando, apenas sem -f matroska
, mas não ajudei. A mesma coisa aconteceu.
Aqui está o que foi a saída do avconv:
avconv version 9.16-6:9.16-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers
built on Aug 10 2014 18:16:02 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
'bbb_sunflower_native_60fps_normal.mp4':
Metadata:
major_brand : isom
minor_version : 1
compatible_brands: isomavc1
creation_time : 2013-12-24 11:10:47
title : Big Buck Bunny, Sunflower version
artist : Blender Foundation 2008, Janus Bager Kristensen 2013
comment : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
genre : Animation
composer : Sacha Goedegebure
Duration: 00:10:34.56, start: 0.000000, bitrate: 10487 kb/s
Stream #0.0(und): Video: h264 (High), yuv420p, 4000x2250 [PAR 1:1 DAR 16:9], 10002 kb/s,
60 fps, 60 tbr, 60k tbn, 120 tbc
Metadata:
creation_time : 2013-12-24 11:10:47
Stream #0.1(und): Audio: mp3, 48000 Hz, stereo, s16p, 160 kb/s
Metadata:
creation_time : 2013-12-24 11:10:49
Stream #0.2(und): Audio: ac3, 48000 Hz, 5.1, fltp, 320 kb/s
Metadata:
creation_time : 2013-12-24 11:10:49
[libx264 @ 0xe96580] using SAR=1/1
[libx264 @ 0xe96580] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0xe96580] profile High, level 4.2
[libx264 @ 0xe96580] 264 - core 142 r2389 956c8d8 - H.264/MPEG-4 AVC codec - Copyleft
2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0
analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16
chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2
threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0
bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1
weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0
rc_lookahead=40 rc=abr mbtree=1 bitrate=10000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69
qpstep=4 ip_ratio=1.25 aq=1:1.00
encoder 'aac' is experimental and might produce bad results.
Add '-strict experimental' if you want to use it.
Press ENTER to continue...