1

У меня есть файл .avi содержащий следующие потоки:

Stream #0.0: Video: mpeg4 (Advanced Simple Profile), yuv420p, 608x256 [PAR 1:1 DAR 19:8], 23.98 tbn, 23.98 tbc

Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16p, 128 kb/s

Я хочу воспроизвести этот фильм на Iphone, который должен поддерживать видеопотоки mpeg4, как указано в предыдущем вопросе. На данный момент мне плевать на аудиопоток (кажется, Iphone не поддерживает mp3)

Как следствие, я ищу способ просто преобразовать формат "контейнера" моего файла из .avi в .mp4 требуемый Iphone. Это выполнимо, и если да, то как мне это сделать?

5 ответов5

4

Используя ffmpeg , легко изменить только формат контейнера и только скопировать (повторно мультиплексировать) все его потоки без перекодирования:

ffmpeg -i input.avi -map 0 -codec copy output.mov

Если вы указываете расширение .mov , вы можете опустить -f mov , потому что ffmpeg угадывает его по расширению. Если вы действительно хотите удалить некоторые потоки, отметьте опцию -map и прочитайте о выборе потоков по умолчанию.

2

Вероятно, следует добавить способ сделать это с avconv :

avconv -i input.avi -c:v copy -c:a copy output.mp4

Если для этого вы компилируете libav из исходного кода, вам нужно убедиться, что вы включили mp4 muxer. Вы можете сделать это с

./configure [your other options] --enable-muxer=mp4

В любом случае он обычно включен по умолчанию, но я предоставляю его здесь в случае, если вы используете --disable-everything или --disable-muxers где - то в обычных опциях.

0

Вы всегда можете использовать mencoder

Подробнее читайте здесь: Кодирование видео для iPhone с помощью mencoder

0

Это то, что я использую:

ffmpeg -y -i %INFILE% -vcodec mpeg4 -r 65535/2733 -vb 600k -acodec libvo_aacenc -ac 1 -ab 94000 -ar 16000 -s 480x320 %OUTFILE%.new.mp4

Он взят из пакетного сценария DOS, поэтому вам может потребоваться немного обновить переменные.

Разрешение экрана оптимизировано для моего телефона, поэтому мне, возможно, придется изменить это. Или вы можете просто пропустить это.

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

0
ffmpeg -i input.avi -c:v libx264 -profile:v baseline -level 3.0 -c:a copy output.mp4

Это перекодирует ваше видео с h.264, но оно должно работать на всех iPhone.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .