Я попытался преобразовать видеофайл в нужный формат, используя FFmpeg через WinFF. У меня есть конкретные требования к некоторым аспектам выходного файла, в то время как другие аспекты должны быть установлены таким образом, чтобы обеспечить наилучшее качество на выходе. Чтобы уточнить - я хочу, чтобы мой выходной файл был:
- 1600 × 900
- в контейнере мкв
- с использованием видео декодера H.264
- используя аудио декодер aac
- Соотношение 16:9 (очевидно ...)
- тот же уровень звука, что и на входе
- 60 кадров в секунду
- с ничего не вырезано или изображение теряет свою первоначальную пропорцию.
Не обязательно
- используя все 48 аудио каналов.
Любой другой аспект файла, который не повлияет на перечисленные выше, должен обеспечить наилучшее качество. Ну, не буквально. Я не хочу файл, который занял бы половину моего жесткого диска, или это заняло бы неделю, чтобы преобразовать.
Во всяком случае, это была некоторая предыстория того, чем я сейчас занимаюсь. Я пытался все выяснить сам, но то, что я сделал, дало мне пустой файл .mkv вместе с журналом и 234,5 МБ .log. [Что-то] файл. Более того - преобразование заняло слишком много времени. Я конвертировал Big Buck Bunny длиной 10 минут, и это заняло что-то между 1-2 часами (вероятно). Я собираюсь конвертировать некоторые файлы продолжительностью 2 часа, так что да, один день на файл будет слишком много ...
Здесь идут параметры, которые я использовал.
1-й проход:
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-й проход
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"
Я знаю, значения вроде 50000k и 96000 кажутся сумасшедшими, но я просто хотел попробовать это.
Наконец то, что я ищу!
- Что я сделал неправильно в первый раз?
- Какие параметры дадут мне желаемый результат?
Если кто-то будет очень приятным, я буду очень признателен за два набора параметров - один для лучшего, но не безумного вывода, и один для наилучшего, который я мог бы получить. Я знаю, что последний может сжечь мой процессор, потратить год на обработку или быть в 10 раз больше, чем весь мой диск. Это просто для моего любопытства.
РЕДАКТИРОВАТЬ Здесь идет вывод терминала с 1-го прохода. На самом деле теперь я вспомнил, что 2-го прохода не произошло. Я не могу восстановить то, что было в терминале, когда вещи разбились при переходе на второй проход. Я просто нажал ввод и весь терминал исчез. Я не могу дождаться завершения первого прохода прямо сейчас, это занимает слишком много времени.
Терминальный выход:
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 Как и предполагалось, я попытался запустить с параметром -f matroska
. На этот раз я также попытался сделать только один проход, так как думал, что второй был слишком трудоемким.
Вот команда, которую я использовал для преобразования:
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"
Но, к сожалению, терминал закрывается, как только я нажимаю Enter, чтобы подтвердить вывод avconv. Я попробовал ту же команду, только без -f matroska
, но я не помог. То же самое случилось
Вот что было на выходе 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...