31
Авг

iPhone и ffmpeg

Написал Максим Крентовский в Исследования

Простая с виду задача — переконвертировать видео для просмотра на вышеупомянутом мобильном устройстве — таила в себе много проблем.

Начиная с того, что подсмотренный в интернете секретный прием кунфу двупроходного сжатия заработать не захотел:

1
2
3
#!/bin/bash
ffmpeg -i $1 -y -an -pass 1 -vcodec libx264 -s 480x320 -aspect 16:9 -threads 4 -b 256kbps -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -me epzs -subq 1 -trellis 0 -refs 1 -bf 16 -b_strategy 1 -coder 1 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 256K -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4  $2
ffmpeg -i $1 -y -acodec libfaac -ab 64k -pass 2 -vcodec libx264 -s 480x320 -aspect 16:9 -threads 4 -b 256kbps -flags +loop -cmp +chroma -partitions +parti8x8+parti4x4+partp8x8+partp4x4+partb8x8 -flags2 +brdo+dct8x8+wpred+bpyramid+mixed_refs -me umh -subq 7 -trellis 1 -refs 6 -bf 16 -directpred 3 -b_strategy 1 -bidir_refine 1 -coder 1 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 256K -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 $2

Устройство страшно сопротивлялось QT-вской картинкой. Выход был найден в удалении всех параметров кодека (видимо, какой-то из них и вводил декодер в ступорное состояние). Качество видео ухудшилось, но показывает

1
2
ffmpeg -i $1 -y -an -pass 1 -vcodec libx264 -s 480x320 -aspect 16:9 -threads 4 -b 256kbps -qmin 10 -qmax 51 $2
ffmpeg -i $1 -y -acodec libfaac -ab 64k -pass 2 -vcodec libx264 -s 480x320 -aspect 16:9 -threads 4 -b 256kbps -qmin 10 -qmax 31 $2
1 ком.
  1. [...] я уже ранее писал, вещать видео на iPhone можно было начиная с самых первых [...]

Максим Крентовский
системный архитектор
E-mail / GTalk: mkrentovskiy@gmail.com
Skype: mkrentovskiy