Конвертируйте видео в MP4 (H.264 / AAC) с помощью ffmpeg - PullRequest
16 голосов
/ 03 декабря 2009

Если я не ошибаюсь, 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 кбит / с Поток # 0.0: видео: h264, yuv420p, 320x240 [PAR 1: 1 DAR 4: 3], 66 кбит / с, 29,92 т, 1 тыс. Т, 2 тыс. Тс Поток # 0.1: Аудио: aac, 22050 Гц, стерео, s16 Выход № 0, mp4, до 'Video.mp4': Поток № 0.0: видео: mpeg4, yuv420p, 320x240 [PAR 1: 1 DAR 4: 3], q = 2-31, 200 кбит / с, 90 тыс. т, 29,92 тс Поток # 0.1: Аудио: 0x0000, 22050 Гц, стерео, s16, 64 кбит / с Отображение: Поток № 0.0 -> # 0.0
Stream # 0.1 -> # 0.1 Неподдерживаемый кодек для выходного потока # 0.1

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

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

Ответы [ 8 ]

16 голосов
/ 09 марта 2010

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

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

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

Чтобы получить список всех доступных пресетов:

  $ HandBrakeCLI -z
14 голосов
/ 08 декабря 2009

Патенты на программное обеспечение побудили Debian / Ubuntu отключить кодеры H.264 и AAC в ffmpeg. См. /Usr/share/doc/ffmpeg/README.Debian.gz.

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

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

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

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

4 голосов
/ 05 декабря 2015

Вы пытаетесь преобразовать (довольно редкий) файл .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

3 голосов
/ 21 мая 2012

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

1 голос
/ 24 сентября 2014

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

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

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

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.

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

1 голос
/ 03 декабря 2009

Вы также можете попробовать добавить Motumedia PPA к вашим подходящим источникам и обновить пакеты ffmpeg.

0 голосов
/ 26 июля 2018

Попробуйте это :: Libav в Linux

Installation: run command  
               sudo apt-get install libav-tools 

Video conversion command::Go to folder contains the video and run in terminal
               avconv -i oldvideo.flv -ar 22050 convertedvideo.mp4
0 голосов
/ 03 декабря 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...