Подтвердить что ты не робот

Конвертировать видео в MP4 (H.264/AAC) с помощью ffmpeg

Если я не ошибаюсь, Safari в настоящее время нуждается в видео MP4 (H.264/AAC), закодированном для элемента HTML5 <video>.

Поэтому я попытался преобразовать видео в этот формат с помощью ffmpeg. Однако, когда я ввожу команду оболочки ffmpeg -i video.flv video.mp4, возвращаемая ошибка:

Кажется, частота кадров кодека 0 отличается от частоты кадров в контейнере: 2000.00 (2000/1) → 29.92 (359/12) Вход # 0, flv, из 'video.flv':
Продолжительность: 00: 05: 01.20, начало: 0,000000, битрейт: 66 kb/s     Stream # 0.0: Видео: h264, yuv420p, 320x240 [PAR 1:1 DAR 4: 3], 66 kb/s, 29,92 tbr, 1k tbn, 2k tbc     Поток # 0,1: Аудио: aac, 22050 Гц, стерео, s16 Выход # 0, mp4, до 'Video.mp4':     Stream # 0.0: Видео: mpeg4, yuv420p, 320x240 [PAR 1:1 DAR 4: 3], q = 2-31, 200 kb/s, 90k tbn, 29,92 tbc     Stream # 0.1: Аудио: 0x0000, 22050 Гц, стерео, s16, 64 kb/s Stream mapping: Stream # 0.0 → # 0.0
Поток # 0.1 → # 0.1 Неподдерживаемый кодек для выходного потока # 0.1

Требуется кодек AAC, но я довольно новичок с ubuntu, и теперь я не знаю, как исправить эту проблему. Я использую Ubuntu 9.10 Karmik Koala (для amd64).

Большое спасибо.:)

4b9b3361

Ответ 1

http://handbrake.fr - хороший инструмент высокого уровня с множеством полезных пресетов для mp4 для iPod, PS3,... с обоими графическими интерфейсами и интерфейсы CLI для Linux, Windows и Mac OS X.

Он поставляется со своими зависимостями как один статически связанный жирный двоичный файл, поэтому вы включаете все кодеки x264/aac.

  $ HandBrakeCLI -Z Universal -i myinputfile.mov -o myoutputfile.mp4

Чтобы просмотреть все доступные пресеты:

  $ HandBrakeCLI -z

Ответ 2

Патенты на ПО привели к тому, что Debian/Ubuntu отключили кодеры H.264 и AAC в ffmpeg. См. /usr/share/doc/ffmpeg/README.Debian.gz.

Итак, перейдите к install x264, mplayer/mencoder и кодер Nero AAC. (Или, если вы хотите использовать все бесплатное программное обеспечение и не заботитесь о качестве звука, тогда sudo aptitude install faac.)

Я не помню, если пакет mencoder medibuntu включает в себя кодировку x264 vid, так как я создаю свои собственные из источников git x264 и svn mplayer. (x264 очень активно развивается, при этом значительно улучшаются качественные и быстрые улучшения). http://git.videolan.org/?p=x264.git;a=summary

x264 также упакован, но вы должны проверить, что он до настоящего времени достаточно, чтобы включить weightp с последние исправления ошибок и еще более свежие улучшения скорости...

Или, если вы уже готовы конвертировать из .flv, вместо того, чтобы идти из высококачественного источника, из которого был создан flv, тогда, вероятно, любая недавняя версия x264, которую вы можете найти, будет в порядке.

Ответ 3

Вы пытаетесь преобразовать (довольно редкий).flv файл, который (уже) содержит видео H.264 и аудио AAC.

Форматирование вывода на консоль, поскольку FFmpeg выводит эти данные.

 Input #0, flv, from 'video.flv':
   Duration: 00:05:01.20, start: 0.000000, bitrate: 66 kb/s
    Stream #0.0: Video: h264, yuv420p, 320x240 [PAR 1:1 DAR 4:3], 66 kb/s, 29.92 tbr, 1k tbn, 2k tbc 
    Stream #0.1: Audio: aac, 22050 Hz, stereo, s16

Оригинальный flv преобразуется в файл .mp4 с видео H.264 и аудио AAC (как и оригинальный .flv):

Output #0, mp4, to 'video.mp4': 
    Stream #0.0: Video: mpeg4, yuv420p, 320x240 [PAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 90k tbn, 29.92 tbc 
    Stream #0.1: Audio: 0x0000, 22050 Hz, stereo, s16, 64 kb/s

Поскольку аудио и видео данные в формате .flv уже находятся в формате/кодеках, которые вам нужны для .mp4, вы можете просто скопировать все в новый контейнер .mp4. Этот процесс будет значительно быстрее, чем декодирование и перекодирование всего:

ffmpeg -i video.flv -vcodec copy -acodec copy video.mp4

или более просто:

ffmpeg -i video.flv -codec copy video.mp4

Реальная ошибка, которую вы получаете:

Неподдерживаемый кодек для выходного потока # 0.1

Это означает, что FFmpeg не может конвертировать аудио (поток # 0,1) в AAC.

Вы можете пропустить ошибку:

  • копирование аудиоданных, поскольку он уже закодирован AAC (используйте команду копирования выше)

или вы можете решить эту ошибку:

Для получения дополнительной информации вы также должны прочитать Преобразование FLV в MP4 с помощью FFmpeg The Ultimate Guide

Ответ 5

Вы также можете попробовать добавить Motumedia PPA в свои apt-источники и обновить свои пакеты ffmpeg.

Ответ 6

Вам нужно скомпилировать ffmpeg с помощью кодера AAC. Вы можете найти его в AudioCoding.

Ответ 7

Недавно была проблема с преобразованием неприятного WMV в Final Cut Pro X для редактирования. Проигрыватель потока может это сделать, но он оставляет знак воды, поэтому я немного поиграл ffmpeg, пока у меня что-то не получилось.

Сначала установите ffmpeg - я использовал brew install ffmpeg Очевидно, вам нужно сначала установить brew, google, который бит.

Далее я написал простую командную строку script со следующим содержимым - вы можете подставить $1 для файла ввода/вывода или просто создать файл оболочки script... vi convert.sh Paste.

echo "Pass one" ffmpeg -y -i "$1" -c:v libx264 -preset medium -b:v 1555k -pass 1 -c:a libfaac -b:a 256k -f mp4 /dev/null && echo "Pass two" ffmpeg -i "$1" -c:v libx264 -preset medium -b:v 1555k -pass 2 -c:a libfaac -b:a 256k "$1.mp4"

Затем конвертировать видео... sh convert.sh myvideofile.wmv Если все пойдет хорошо, вы должны увидеть новый файл myvideofile.wmv.mp4.

Надеюсь, что это сработает для вас.