Ffmpeg

https://wiki.archlinux.org/index.php/FFmpeg#YouTube

mencoder

Установка

 * + FAAC
 * + LAME (иначе он не будет уметь mp3 создавать)

ALSA=off "Enable alsa input/output device" AMR_NB=off "AMR Narrow Band audio encoder (opencore)" AMR_WB=off "AMR Wide Band audio decoder (opencore)" CELT=off "Enable CELT/Opus decoding via libcelt" DIRAC=off "Dirac codec via libdirac" FAAC=on "FAAC mp4/aac audio encoder" FFSERVER=on "Build and install ffserver" FREETYPE=on "Text on top of video frames (freetype2)" FREI0R=on "Frei0r wrapper filter" GSM=off "GSM audio codec" LAME=on "LAME MP3 encoder" OPENCV=on "OpenCV video filtering support" OPENJPEG=off "JPEG 2000 decoder" OPTIMIZED_CFLAGS=off "Additional optimizations" RTMP=off "RTMP[E] support via librtmp" SCHROEDINGER=on "Dirac codec via libschroedinger" SDL=off "SDL support (build ffplay)" SPEEX=off "Speex audio decoder" THEORA=on "Theora encoder (implies OGG)" VAAPI=off "GPU acceleration support (libva)" VDPAU=off "Nvidia vdpau support" VO_AACENC=off "AAC audio encoder (vo-aacenc)" VO_AMRWBENC=off "AMR Wide Band audio encoder (vo-amrwbenc)" VORBIS=on "Vorbis encoder via libvorbis (implies OGG)" VP8=on "VP8 codec via libvpx" X264=on "H.264 encoder" XVID=on "Xvid encoder via xvidcore"

ffmpeg -formats
 * Поддерживаемые форматы видео

ffmpeg -codecs -sameq Use same video quality as source (implies VBR).
 * Аудио

The ‘-sameq’ option meant "same quantizer", and made sense only in a very limited set of cases. Unfortunately, a lot of people mistook it for "same quality" and used it in places where it did not make sense: it had roughly the expected visible effect, but achieved it in a very inefficient way.

Each encoder has its own set of options to set the quality-vs-size balance, use the options for the encoder you are using to set the quality level to a point acceptable for your tastes. The most common options to do that are ‘-qscale’ and ‘-qmax’, but you should peruse the documentation of the encoder you chose.

Конвертация с MPEG (изначально там в MOV mjpeg ffmpeg -i P1200960-basics2.MOV -acodec mp2 -r 25 -s 640x360 -vcodec mpeg2video -qscale 5 640x360-qscale5_2p.mpg

Объединение cat 640x360-qscale5.mpg 640x360-qscale5_2p.mpg |ffmpeg -i - -vcodec copy -acodec copy basics.mpg [mpeg @ 0x9ed8420]max_analyze_duration reached [mpeg @ 0x9ed8420]Estimating duration from bitrate, this may be inaccurate

Уменьшение размера
Камера записывает обычно типовой размер. Ctrl+I в vlc посмотреть размер
 * hd480              852x480
 * hd720              1280x720
 * hd1080              1920x1080

Расположение ключа в строке важно, если до -i (или еще до чего-то), то не учитывается. -s hd480 -s size Set frame size. The format is wxh (ffserver default = 160x128,          ffmpeg default = same as source)

Конвертация
В mp4 ffmpeg -i rob-test.mpg -c:v libx264 -c:a libfaac -r 30 out.mp4

ffmpeg -i input.MPG -deinterlace -pix_fmt yuv420p -vcodec libx264 -preset slow -vprofile high -trellis 2 -crf 20 -acodec libfaac -ac 2 -ab 192k -f mp4 -y output.mp4

В FLV ffmpeg -i il14de.mpg -ar 22050 -acodec libmp3lame -ab 32k -vcodec flv -qscale 9.5 OUTFILE.flv

За уровень сжатия отвечает ключ qscale, оптимально 5 или 9 (это хуже качество). Граничный значением является 13, после которого совсем низкое качество. ffmpeg -acodec copy -qscale 5 -i FILENAME-IN OUT-FILENAME

Порядок ключей в строке имеет значение, касающиеся imput должены быть перечислены до него, имеющие отношения к output именно перед ним. ffmpeg -acodec copy -i /mnt/lke/DCIM/102_PANA/P1020402.MOV -r 24 ~/P1020402_desreased24fps_2.MOV

Если явно не указывать форматы, то то умолчанию видео будет отконвертировано в Stream #0.0(eng): Video: mpeg4, yuv420p, 1280x720, q=2-31, 200 kb/s, 30.00 fps(c) и получится MPEG, а для звука MP2-3

ffmpeg -acodec copy -b 20000k -i P1000626.MOV ~/cherluk_bitrate20k.mov
 * Конвертация с указанием битрейта (за основу из оригинального файла значение взято, но получится файл меньшего размера чем оригинальный)

ffmpeg -acodec copy -i P1000626.MOV ~/cherluk.mov
 * Копирование звуковой дорожки в результирующий файл без конвертации

-an -b 1200
 * Убрать звуковые дорожки

Вырезать фрагмент
Если конвертировать только видео, то звук нормально синхронизируется. Чтобы сохранить качество и рассинхрон убрать, срабатывает вот такая конструкция. ffmpeg -acodec copy -sameq -i /usr/local/www/apache22/data/filempla3full -ss 00:05:36 -t 00:02:15 outffmpeg-copy-wovideo-sameq.asf

ffmpeg -sameq -i Авиаторы\ -\ 2007.01.14\ \(SD\) -ss 00:11:57 -t 00:06:29 outaviators.mpg

Производится при этом конвертация (как избавиться?) ffmpeg -i M2U00620.MPG -ss 00:00:10 -t 00:03:39 primitivnay.mpg

-sameq Use same video quality as source (implies VBR).

расширение влияет - если написать ASF, то его и создаст ffmpeg -i /usr/local/www/apache22/data/filempla3full -ss 00:05:36 -t 00:03:39 outffmpeg.asf

Если копировать кодек звуковой, то может периодически рассинхрон звука происходить. Можно пытаться конвертировать звук и этим бороться с рассинхронизацией. -acodec copy -vcodec copy

Есть еще некий -async 1

So, in the above example, you're starting 10 seconds in from the beginning of the original file and ending 30 seconds later. If you want to create multiple parts in one pass then the following should work: ffmpeg -i input.mpg -ss 00:00:10 -t 00:00:30 out1.mpg -ss 00:00:35 -t 00:00:30 out2.mpg

Конвертация для Youtube
В рекомендациях на конец 2013 пишут, что: Результат можно увидеть если скачать их MP4
 * Для звука: D aac             raw ADTS AAC - пишет что только Decode, но сам жмет в него..

Это старье какое уже ffmpeg -i FILE.mov -t 6.8 -ar 22050 -acodec libmp3lame -ab 32k -r 25 -s 320x240 -vcodec flv -qscale 9.5 OUTFILE.flv

Сделать видео из картинок
ffmpeg -i %d.jpg -vcodec flv test.flv ffmpeg -i testd.jpg -vcodec mpeg4 test.avi ffmpeg.exe -f image2 -framerate 25 -pattern_type sequence -start_number 1234 -r 3 -i Imgp%04d.jpg -s 720x480 test.avi

Со звуком ffmpeg -i sound.mp3 -f image2 -i img/image%d.jpg video.avi

Сделать видео из аудио
ffmpeg -i pusep.mp3 -i Puusepp.jpg out.avi

ffmpeg -y -i /path_to_your/song.mp3 -f flv -ab 131072 -ac 1 /path_to_your/video.flv

Неподдерживаемый кодек
При попытке запуска на файле со звуком в  Stream #0.1(eng): Audio: pcm_s16be, 16000 Hz, mono, 256 kb/s выводит сообщение "Unsupported codec for output stream #0.1" Тут полезен -acodec copy

При попытке конвертировать возникает сообщение. "encoding 6 channel(s) is not allowed in mp2" Надо добавить ключи -acodec mp2 -ac 2 -ab 128k. Но в итоге ничего не происходит, а программа активно использует процессор. То же и при -acodec copy - то же самое.
 * 6-канальный звук

Сбор видео из кадров
Полученные в Blender

Да, я кодирую через mplayer/mencoder/x264:

$ mencoder "mf://*png" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=ffvhuff $ mplayer -nosound -vo yuv4mpeg:file=>(x264 --demuxer y4m --crf 15 --threads auto --output output.264 - 2>/dev/null) output.avi $ MP4Box -fps 25 -add output.264 video.mp4 $ rm output.{avi,264}

На выходе будет video.mp4

Merge
Звук отваливается cat P1200959-basics1.MOV P1200960-basics2.MOV | ffmpeg -f mjpeg -i - -vcodec copy -acodec copy basic0.mov

Не пробовал cat imput%d.mpg | ffmpeg -f mpeg -i – -vcodec copy -acodec copy outfile.mpg

Просмотреть список форматов ffmpeg -formats

-f fmt Force format. -i filename input file name

cat abc.mpg def.mpg | ffmpeg -f mpeg -i - -vcodec copy -acodec copy ghi.mpg

-vcodec codec Force video codec to codec. Use the "copy" special value to tell that the raw codec data must be copied as is.

-sameq Use same video quality as source (implies VBR).

Capture a video from the webcam To record video run ffmpeg with arguments such as these:

ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 out.mpg

To record both audio and video use: ffmpeg -f oss -i /dev/dsp -f video4linux2 -s 320x240 -i /dev/video0 out.mpg