преобразование ffmpeg пропускает аудио - PullRequest
1 голос
/ 20 апреля 2011

При преобразовании видео в формат mp4 с использованием ffmpeg звук пропускается, из-за чего звук не синхронизируется с видео.

Можно посмотреть следующее видео: https://vialogues.com/vialogues/play/486

Я использую следующие опции для конвертации

/usr/local/bin/ffmpeg -y -i $inputfile -acodec libfaac -ar 44100 -ab 96k -vcodec libx264 -level 41 -bufsize 20000k -maxrate 25000k -g 250 -r 20 -s 480x270 -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +dct8x8+bpyramid -me_method umh -subq 7 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -bf 16 -b_strategy 1 -bidir_refine 1 -refs 6 -crf 25 -deblockalpha 0 -vpre medium -deblockbeta 0 $outputfile

Также версия ffmpeg -

ffmpeg
FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers
  built on Feb 19 2011 19:03:56 with gcc 4.4.5
  configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab
  libavutil     50.15. 1 / 50.15. 1
  libavcodec    52.72. 2 / 52.72. 2
  libavformat   52.64. 2 / 52.64. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.11. 0 /  0.11. 0
  libpostproc   51. 2. 0 / 51. 2. 0
Hyper fast Audio and Video encoder

Есть идеи, почему это происходит?

Ответы [ 2 ]

2 голосов
/ 21 апреля 2011

Я провел много исследований и поиграл с асинхронной опцией ffmpeg. Я обнаружил, что проблема с синхронизацией губ возникает из-за того, что libfaac понижает звук, поэтому я изменил опцию --acodec для копирования.что фактически означает, что не уменьшайте это и поместите это в сырой формат.

После этого проблема исчезла.

/usr/local/bin/ffmpeg -y -i $inputfile -acodec copy -ar 44100 -ab 96k -vcodec libx264 -level 41 -bufsize 20000k -maxrate 25000k -g 250 -r 20 -s 480x270 -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +dct8x8+bpyramid -me_method umh -subq 7 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -bf 16 -b_strategy 1 -bidir_refine 1 -refs 6 -crf 25 -deblockalpha 0 -vpre medium -deblockbeta 0 $outputfile

Несколько ссылок, которые были полезны при выяснении ffmpeg:

1) Рассказывает о том, как работает FFMPEG: http://howto -pages.org /ffmpeg / 2) Преобразование видео в быстрое время: http://ubuntuforums.org/archive/index.php/t-387640.html 3) Установка FFMPEG на UBUNTU: http://ubuntuforums.org/showpost.php?p=6963607&postcount=360

0 голосов
/ 10 марта 2012

Ваш ответ - одно из решений, которое также сработало для меня, когда я столкнулся с подобной проблемой.Однако копирование звуковой дорожки не было для меня возможным, потому что я хочу, чтобы она была сжата, а оригиналы могли иметь дорожки со скоростью 384 кбит / с.

Но важная вещь, которую вы упомянули, была проблема понижающей дискретизации.Это, и этот поток (http://doom10.org/index.php?topic=1639.0) заставил меня задуматься и попробовать aac-кодек. Он считается экспериментальным, но он отлично работал для меня! -Async, -vsync ничего не сделал, но -acodec aac -strict экспериментальный (для ffmpeg не предупреждатьВы, что это экспериментально), сделал чудеса! Настоятельно рекомендую это решение всем, у кого есть проблемы с синхронизацией аудио / видео и где копирование аудио не является вариантом, а обычные решения не работают. aac - отличный кодек. Я все еще собираюсьиспользуйте libfaac в качестве основного кодека aac, потому что aac является экспериментальным, но я уверен, что теперь acc может дать отличные результаты в работе и быть последовательным.

...