LINUX.ORG.RU

конвертация видео

 ,


1

2

Есть видеокамера, которая пишет видео в hd1080 (h264+ac3). 4 часа видео - ~30G. Требуется конвертировать его в видео с адекватным размером.

Раньше конвертировал так:

avconv -i video.mkv -s hd720 -b 3000k -acodec ac3 -ab 128k video.720p.mkv

Иногда случался рассинхрон аудио/видео.

Сейчас конвертирую так:

avconv -i video.mkv -s hd720 -async 24 -vsync 1 -b 3000k -acodec ac3 -ab 128k video.720p.mkv

Просветите по поводу vsync и async. Сейчас при конвертации строка состояния выглядит как-то так:

frame= ~2*N fps= 23 q=*.* size=*** time=*** bitrate=3***.*kbits/s dup=N drop=0

Чем плохо, что у видео очень много дублирующихся фреймов? Пробовал конвертировать с -vsync 0 - размер выходного файла был меньше, но совсем на чуть-чуть.

Почему они возникают?

Поможет ли мне -async 24, чтобы решить проблему с рассинхроном? И как синронизируются дорожки, если async не указывать?

С какими параметрами вы конвертировали бы видео? (хотелось бы с комментариями какая опция зачем.)

Реквестирую ссылки на годные статьи об этом.

P.S. Заодно хочу узнать о видеофильтрах в avconv для повышения яркости и контрастности.

★★★★★

Для начала выясни, какого именно вида у тебя рассинхрон (постоянный, нарастающий и т. п.), в каких проигрывателях он возникает (а в каких не возникает), какую низкоуровневую природу он имеет. И соответственно этим данным, выбери стредство борьбы с рассинхроном. Нехило поможет задать вопрос в ffmpeg-user@ffmpeg.org, со ссылкой на твои файлы.

Krieger_Od ★★
()
Ответ на: комментарий от Krieger_Od

Для начала выясни, какого именно вида у тебя рассинхрон (постоянный, нарастающий и т. п.)

Рассинхрон был нарастающий. Во всех плеерах (после конвертации). Природа.. Какие-то ошибки при декодировании? video.mkv было получено с помощью mkvmerge -o video.mkv 00000.MTS +00001.MTS ... +0000N.MTS. Может на этом этапе поехало? Но вроде с async и vsync стало всё хорошо..

выбери стредство борьбы с рассинхроном

А какие они есть? И в каких случаях какое надо использовать?

со ссылкой на твои файлы.

Вряд ли кому-то будет не лень качать 20Gb.. :)

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

Вот вы не собирайте mkv-контейнер, а используйте функцию concat. Я, правда, только ffmpeg использую, но все должно совпадать.

ffmpeg -i concat:VTS_01_1.VOB\|VTS_01_2.VOB -c:a copy -c:v libx264 -preset slow -crf 20 output.mkv

Для автонастройки яркости и контрастности можно использовать фильтр pp

ffmpeg -i concat:VTS_01_1.VOB\|VTS_01_2.VOB -vf 'pp=al' -c:a copy -c:v libx264 -preset slow -crf 20 output.mkv
ValdikSS ★★★★★
()
Ответ на: комментарий от ValdikSS

Вот вы не собирайте mkv-контейнер, а используйте функцию concat.

А какие плюсы?

фильтр pp

Спасибо, сейчас посмотрю..

Tanger ★★★★★
() автор топика
Ответ на: комментарий от ValdikSS

фильтр pp

Странно. Тут он есть: http://www.ffmpeg.org/ffmpeg-filters.html#pp

Postproc стоит, а «ffmpeg -filters | grep pp» показывает только

$ ffmpeg -filters | grep pp
ffmpeg version 0.8.6, Copyright (c) 2000-2013 the Libav developers
  built on Mar 31 2013 12:24:31 with gcc 4.7.2
This program is not developed anymore and is only provided for compatibility. Use avconv instead (see Changelog for the list of incompatible changes).
hqdn3d           Apply a High Quality 3D Denoiser.
lut              Compute and apply a lookup table to the RGB/YUV input video.
lutrgb           Compute and apply a lookup table to the RGB input video.
lutyuv           Compute and apply a lookup table to the YUV input video.

Как в altlinux так и в gentoo. Какая у вас версия ffmpeg и ОС?

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

У вас же .MTS-ки. Вы можете их просто объединить через concat, если вам его только конвертировать нужно.

ValdikSS ★★★★★
()
Ответ на: комментарий от Tanger

У меня ArchLinux и ffmpeg 2.1.4.

valdikss@valaptop ~ % ffmpeg -filters | grep ' pp'

ffmpeg version 2.1.4 Copyright (c) 2000-2014 the FFmpeg developers
  built on Feb 27 2014 19:04:33 with gcc 4.8.2 (GCC) 20140206 (prerelease)
  configuration: --prefix=/usr --disable-debug --disable-static --enable-avresample --enable-dxva2 --enable-fontconfig --enable-gnutls --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-pic --enable-postproc --enable-runtime-cpudetect --enable-shared --enable-swresample --enable-vdpau --enable-version3 --enable-x11grab
  libavutil      52. 48.101 / 52. 48.101
  libavcodec     55. 39.101 / 55. 39.101
  libavformat    55. 19.104 / 55. 19.104
  libavdevice    55.  5.100 / 55.  5.100
  libavfilter     3. 90.100 /  3. 90.100
  libavresample   1.  1.  0 /  1.  1.  0
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
 T.C pp               V->V       Filter video using libpostproc.
ValdikSS ★★★★★
()
Последнее исправление: ValdikSS (всего исправлений: 1)
Ответ на: комментарий от ValdikSS

http://libav.org/avconv.html
http://www.ffmpeg.org/ffmpeg-filters.html

Конфликт между FFmpeg и Libav мешает разработке проектов

... на сторону libav перешёл сборщик пакетов. В описании пакета при этом сообщается, что FFmpeg уже устарел

Печально. Всё же не понимаю, почему дистрибутивы стали использовать libav по-умолчанию.. :(

Tanger ★★★★★
() автор топика
Ответ на: комментарий от ValdikSS

Да, в gentoo есть пакет media-video/ffmpeg - который нормальный ffmpeg, а есть virtual/ffmpeg, который имеет зависимость от libav.

Не могу понять мейнтейнеров дистрибутивов. Может у них всё же есть какие-то причины?

Tanger ★★★★★
() автор топика

Чем плохо, что у видео очень много дублирующихся фреймов? Пробовал конвертировать с -vsync 0 - размер выходного файла был меньше, но совсем на чуть-чуть.

Дублирующихся кадров не было. «dup=N» - это ffmpeg их вставил.

Почему они возникают?

Похоже, что исходник с VFR, а ты просишь -vsync 1, т. е. CFR.

Поможет ли мне -async 24, чтобы решить проблему с рассинхроном? И как синронизируются дорожки, если async не указывать?

Нет. Исходник (*.MTS) прекрасно синхронизирован. Это задача видеокамеры. Твоя задача не поломать синхронизацию, что бы потом не решать эту проблему.

Почему в твоем случае возник рассинхрон? Для начала локализуй: на каком этапе возникает - при склейке mkvmerge или перекодировании avconv. Затем сравни все временные параметры исходного материала и полученного.

Думаю, что склеенные файлы были с разными параметрами. В этом случае при склеивании требуется перекодирование, что не было сделано. см. How to concatenate (join, merge) media files

С какими параметрами вы конвертировали бы видео? (хотелось бы с комментариями какая опция зачем.)

Твой вариант

-i video.mkv -s hd720 -b 3000k -acodec ac3 -ab 128k video.720p.mkv
идеален. Encoding

Рекомендую пользоваться ffmpeg и клеить-перекодировать сразу в один этап.

fopen ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.