LINUX.ORG.RU

ffmpeg / mencoder - то звук не тот, то кадры дёргаются


0

1

Добрый день!

Возился-возился с проблемой, и вот прошу вашей подсказки.

Есть исходные файлы MPG/MP4.

Есть необходимость закодить их для веба с H264 и AAC. Видимо, потребность в этом чтобы играло видео у всех, в том числе в WMP.

Нарыл строки кодирования.
Ставлю в ffmpeg. Картинка отличная, звук (по-крайней мере в начале) как будто рассинхронизирован в разных наушниках.
В процессе кодирования никаких предупреждений.
Если не указывать AAC- звук нормальный.

Ставлю в mencoder. Звук нормальный, картинка (опять-же удобно это ловить в самом начале) чуть поддёргивается периодами.
В процессе кодирования сообщает что установил другую задержку по аудио (0.08 сек), и сыпет сообщениями о пропущенном фрейме.
Пробовал ставить вместо AAC PCM - та-же проблема (с пропусками фреймов тоже).
Играл с ofps. Меняется порядок подёргивания, но она всё-равно ещё различима немного в другом месте.

Нужна ваша помощь!



Ниже привожу команды кодирования и данные исходного MPG.

ffmpeg -i $1 -f flv -acodec aac -strict experimental -ab 128k -ar 44100 -vcodec libx264 -vpre libx264-hq -b 3000k -bt 3000k -threads 0 -s 640x360 -r 25 encoding_new_f_1p.SD.f4v

(в случае вырезания -acodec aac -strict experimental работает нормально, но mp3 не было изначально в моём задании, видимо нужен именно acc)


mencoder $1 \
-o encoding_new_m_1p.SD.f4v \
-ofps 25 \
-oac faac \
-faacopts br=128 -srate 44100 -ovc x264 \
-x264encopts bitrate=3000 \
-vf scale=640:360

При замене -oac faac на -oac pcm проблема с подёргиванием остаётся.
Пробовал в -vf добавлять filmdint-pullup-softskip, но проблему это полностью не решало



Параметры исходного файла:

File      news_11.09.2010.mp4
Size      256068 KB (250 MB)
Length   00:03:26
Demuxer   lavfpref

Video
Resolution   1280 x 720
Aspect ratio   1.7778
Format      H264
Bitrate      9986 kbps
Frames per second   50.000
Selected codec   ffh264

Initial Audio Stream
Format      MP4A
Bitrate      189 kbps
Rate         48000 Hz
Channels      2
Selected codec   faad

slobodyan

Параметры исходного файла: Bitrate 9986 kbps Frames per second 50.000

50 fps и битрейт ~10 mps ? скорее всего, проц/мат-плата не успевают обрабатывать изображение.

да, и почему бы не залить файл на ЮТюб ? 250М - будет долго, если вообще осилит сервер, если получится - будет самое то для www.

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

Заливать нельзя. Там есть множество видео по 5 гигов. И ещё нужно реализовать проигрывание нашим флеш-плеером, чтобы его встраивали в другие сайты и приходили к нам.

Я кодирую это на ноуте Acer Aspire 5942G. Он вроде не самый дохлый. :) И потом, мне всегда было непонятно- почему проц может не осиливать статичный файл? Разве от медленной работы железа может быть что-то хуже простой задержки с завершением кодирования?

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

>ffmpeg-0.6.25320svn-1.pm.3.1.x86_64 MPlayer-1.0rc4_r31930-1.pm.3.2.x86_64

Из репозитория Packman, видимо.

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

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

приношу свои извинения за скоропалительный комментарий.

разобрался с тем, в каком формате и с каким fps записывают видео видео/фото-камеры.

так вот, оказывается есть два самплинг-формата - 50 fps и даже 60 fps. первая, стандарт Европы - PAL : вторая, стандарт Янки - NTSC.

от нормального воспроизведения их отличает interlaced, not progressive.

progressive самплинг записывает - 25 fps/30 fps.

что можно сделать с видео-клипом - перекодировать в другой (x264/AAC) формат с переводом из interlaced в progressive, progressive HD формат требуют плейеры и возпроизводители video/audio.

blitz
()
Ответ на: комментарий от slobodyan

Я кодирую это на ноуте Acer Aspire 5942G.
Разве от медленной работы железа может быть что-то хуже простой задержки с завершением кодирования?

заключение - да, железо влияет.

глянь, какой GPU на ноуте. если это не nVidia с поддержкой CUDA и PureVideo, CPU просто захлебнётся.

если GPU поддерживает CUDA и PureVideo, CPU будет загружен лишь на 10-20% при работе с HD контентом, с тем, что ты и столкнулся.

моар: http://www.nvidia.com/object/cuda_gpus.html

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