Кодирование команд базового профиля h264, уровень 1, с FFmpeg и libx264

3

Кто-нибудь может предложить команду для кодирования видео в базовый профиль h264 (уровень 1)?

Вот ссылка для справки: http://blog.mediacoderhq.com/h264-profiles-and-levels/

Я использовал эту команду, но FFmpeg говорит, что это Основной профиль, а не Базовый.

ffmpeg -i <SOURCE> -vcodec libx264 -coder 0 -flags +loop+mv4 \
-partitions +parti4x4+parti8x8+parti4x4+partp8x8+partb8x8 -me_method hex -subq 7 \
-trellis 1 -refs 5 -bf 0 -flags2 +mixed_refs -coder 0 -me_range 16 -threads 2 \
-s 240x160 -b:v 64k -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 \
-qmin 10 -qmax 51 -qdiff 4 -strict experimental -acodec aac -ac 1 -ab 48000 \
-f mpegts udp://127.0.0.1:10006?pkt_size=1316
Morteza Milani
источник

Ответы:

5

Убедитесь, что у вас последняя версия FFmpeg и libx264 - это действительно важно * - а затем попробуйте что-то вроде:

ffmpeg -i … -c:v libx264 -profile:v baseline -level 1 …

Это приведет к:

[libx264 @ 0x10180fa00] profile Constrained Baseline, level 1.0

Конечно, вы можете поставить -preset а также -tune варианты для x264 также. Ссылаться на x264 --fullhelp для получения дополнительной информации.

Вот используемые параметры x264:

cabac=0 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1
psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 
cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 
sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0
constrained_intra=0 bframes=0 weightp=0 keyint=250 
keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 
rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 
qpstep=4 ip_ratio=1.40 aq=1:1.00

* Работает с FFmpeg 0.9 и x264 core 118. -vprofile опция была недокументирована в FFmpeg, теперь она -profile:v, Теперь это в основном работает так же, как -profile, который снова должен заменить -vpre, Он использует встроенные профили x264 вместо того, чтобы полагаться на .ffpreset файлы.

slhck
источник
благодарю вас. Работает ли вывод на андроид телефонах?
Morteza Milani
Это играет на моем телефоне Android, да.
slhck
не удалось играть в эмуляторе Android 2.1 Eclair
leon
@leon Я использовал эту команду все время, и она работала для каждого устройства Android, которое я использовал. Может быть, это проблема с эмулятором.
slhck
@slhck работает в Android 2.2, только в 2.1. Файл того же формата, созданный с помощью iMovie, прекрасно работает в 2.1. У меня был шанс протестировать только в эмуляторе, а не на реальных устройствах.
leon