LINUX.ORG.RU

ffmeg .mp4 to .avi xvid

 , , ,


0

1

Собственно вот, есть пачка файлов с такими данными:

mediainfo file.mp4 
General
Complete name                            : file.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom
File size                                : 736 MiB
Overall bit rate mode                    : Variable
Overall bit rate                         : 2 099 Kbps

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L3.1
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 4 frames
Codec ID/Info                            : Advanced Video Coding
Bit rate                                 : 1 873 Kbps
Maximum bit rate                         : 6 869 Kbps
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Frame rate                               : 25.000 fps
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Bits/(Pixel*Frame)                       : 0.081
Stream size                              : 657 MiB (89%)
Audio #1
ID                                       : 2
Format                                   : AAC
Audio #2
ID                                       : 3
Format                                   : AAC
не нужное, на мой взгляд, поудалял, чтобы по-меньше вывод был. Цель: убрать вторую, ненужную аудио дорожку, первую сконвертировать в mp3. Видео перегнать в avi xvid для бытового плеера, другого он не умеет. Так же можно подогнать разрешение видео под обычный телек 640*480. Делаю так:
$ ffmpeg -i file.mp4 -map 0:0 -map 0:1 -acodec libmp3lame -vcodec mpeg4 -vtag XVID out_file.avi
Конвертирует, разрешение видео как у исходника, качество ужасное, размер видео в 2 раза меньше (что радует), со звуком вроде все в порядке.

Как правильно задать параметры видео, чтобы картинка была красивая для разрешения 640*480?

Начни с ответа на сложный вопрос - что именно у тебя установлено? Libav или ffmeg? Если не знаешь, то пиши дистрибутив и то, как ты его (ffmpeg) ставил.

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

ничего не говорит. конвертирует, на выходе ужасное качество с тем же разрешением. полагаю, нужно выставить вручную разрешение и есть советы, что нужно использовать libxvid вместо mpeg4 -vtag xvid

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

Не может он молчать, если ты просто ffmpeg без параметров запустишь. Он ругнётся и напишет, что он из себя представляет.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine
$ ffmpeg
ffmpeg version 2.4 Copyright (c) 2000-2014 the FFmpeg developers
  built on Sep 15 2014 15:56:38 with gcc 4.9.1 (Debian 4.9.1-14)
  configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/i386-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libpulse --disable-mips32r2 --disable-mipsdspr1 --disable-mipsdspr2 --enable-libvidstab --enable-libzvbi --enable-avresample --disable-htmlpages --disable-podpages --enable-libiec61883 --enable-libfdk-aac --enable-vaapi --enable-libx265 --enable-libdc1394 --disable-altivec --disable-armv5te --disable-armv6 --shlibdir=/usr/lib/i386-linux-gnu
  libavutil      54.  7.100 / 54.  7.100
  libavcodec     56.  1.100 / 56.  1.100
  libavformat    56.  4.101 / 56.  4.101
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  1.100 /  5.  1.100
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  0.100 / 53.  0.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'
conformist ★★★
() автор топика
Ответ на: комментарий от conformist

-s 640x480

Битрейт видео нужно устанавливать вручную, иначе перекодирует с минимальным - отсюда и качество.

equeim ★★
()

Разобрался с параметрами, нашел приемлемые. Конвертирую циклом и есть вопрос:

for i in *.mp4; do
    ffmpeg -i $i -map 0:0 -map 0:1 -acodec libmp3lame -vcodec mpeg4 -vtag XVID -s 640x480 -b 1000k ../on_write/$i.avi ;
    done
конечно, файл на выходе называется file.mp4.avi, а как отрезать имя с конца до точки и подставить уже только имя файла?

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

сам нашел ответ, надо было так записать:


for i in *.mp4; do
    ffmpeg -i $i -map 0:0 -map 0:1 -acodec libmp3lame -vcodec mpeg4 -vtag XVID -s 640x480 -b 1000k ../on_write/"${i%.mp4}.avi" ;
    done

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