FFmpeg: кодирование/декодирование H264
Модератор: Модераторы разделов
Re: FFmpeg: кодирование/декодирование H264
>я получаю из 13М файла 200М с изменёнными цветами
Пресет называется lossless_ultrafast. Это значит что используется сжатие без потерь т.е. квантователь=0.
>Оно вообще, возможно перекодировать h26 в h264?
Конечно возможно. Если бы вы прислушались ко мне и в самом начале использовали mencoder, то всё бы давно получилось.
Пресет называется lossless_ultrafast. Это значит что используется сжатие без потерь т.е. квантователь=0.
>Оно вообще, возможно перекодировать h26 в h264?
Конечно возможно. Если бы вы прислушались ко мне и в самом начале использовали mencoder, то всё бы давно получилось.
Re: FFmpeg: кодирование/декодирование H264
Да мне всё равно чем провести тест - ffmpeg-ом или mencoder-ом. Одно но, сперва всё надо собрать под ARM-архитектуру, попробую завтра заняться mencoder-ом.
Я пробовал использовать max, normal и default - "подопытный" не тянет.
Пресет называется lossless_ultrafast. Это значит что используется сжатие без потерь т.е. квантователь=0.
Я пробовал использовать max, normal и default - "подопытный" не тянет.
- sspphheerraa
- Сообщения: 1375
- ОС: Gentoo
Re: FFmpeg: кодирование/декодирование H264
см. пост №6
upd: Rodegast уже ответил, что losseless - это quantizer=0. В твоем случае исходный файл уже сжат и с перекодированием в losseless происходит его разжатие (размер увеличивается, качество не добавляется)
ps Добавь в пресет опцию "crf=20" (с цифрой можешь поиграться). Не надо менкодера, все получится здесь
И я бы рекомендовал использовать на выходе mp4 вместо avi.
upd: Rodegast уже ответил, что losseless - это quantizer=0. В твоем случае исходный файл уже сжат и с перекодированием в losseless происходит его разжатие (размер увеличивается, качество не добавляется)
ps Добавь в пресет опцию "crf=20" (с цифрой можешь поиграться). Не надо менкодера, все получится здесь
И я бы рекомендовал использовать на выходе mp4 вместо avi.
Sspphheerraa
Re: FFmpeg: кодирование/декодирование H264
Клиент готов. (с)
Не тянет он при добавлении этого параметра, попробую ещё поиграться.
Итак, в наличии имеется:
И полный ступор, не реагирует на команды. Данные по доступной памяти, сразу после перезагрузки:
Не тянет он при добавлении этого параметра, попробую ещё поиграться.
Итак, в наличии имеется:
Код: Выделить всё
# ./ffmpeg -i suspicious_person_stopped_annotated_h264.avi -vcodec libx264 -fpre
/opt/FFMPEG/share/ffmpeg/libx264-lossless_ultrafast.ffpreset test.mp4
FFmpeg version SVN-r21137, Copyright (c) 2000-2010 Fabrice Bellard, et al.
built on Jan 19 2010 10:56:06 with gcc 4.2.0 (MontaVista 4.2.0-16.0.32.0801914 2008-08-30)
configuration: --enable-libx264 --enable-gpl --enable-cross-compile --cross-prefix=arm_v5t_le- --arch=arm-linux --extra-cflags=-I/home/kirill/nfs/IP365/opt/FFMPEG/include --extra-ldflags=-L/home/kirill/nfs/IP3G
libavutil 50. 7. 0 / 50. 7. 0
libavcodec 52.47. 0 / 52.47. 0
libavformat 52.46. 0 / 52.46. 0
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0. 8. 0 / 0. 8. 0
[avi @ 0x9fecb0]max_analyze_duration reached
Seems stream 0 codec frame rate differs from container frame rate: 50.00 (50/1) -> 25.00 (25/1)
Input #0, avi, from 'suspicious_person_stopped_annotated_h264.avi':
Duration: 00:01:02.84, start: 0.000000, bitrate: 1729 kb/s
Stream #0.0: Video: h264, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 25 fps, 25 tbr, 25 tbn, 50 tbc
[libx264 @ 0xb595e0]using SAR=1/1
[libx264 @ 0xb595e0]using cpu capabilities: none!
[libx264 @ 0xb595e0]profile Baseline, level 4.0
Output #0, mp4, to 'test.mp4':
Stream #0.0: Video: libx264, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], q=10-51, 200 kb/s, 25 tbn, 25 tbc
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
oom-killer: gfp_mask=0x200d2, order=0 0kB time=10000000000.00 bitrate= 0.0kbits/s
Mem-info:
DMA per-cpu:
cpu 0 hot: high 42, batch 7 used:6
cpu 0 cold: high 14, batch 3 used:12
DMA32 per-cpu: empty
Normal per-cpu: empty
HighMem per-cpu: empty
Free pages: 1520kB (0kB HighMem)
Active:19341 inactive:0 dirty:0 writeback:0 unstable:0 free:380 slab:403 mapped:0 pagetables:59
DMA free:1520kB min:1448kB low:1808kB high:2172kB active:77364kB inactive:0kB present:131072kB pages_scanned:19310 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
DMA32 free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
Normal free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
HighMem free:0kB min:128kB low:128kB high:128kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
DMA: 18*4kB 3*8kB 1*16kB 0*32kB 0*64kB 1*128kB 1*256kB 0*512kB 1*1024kB 0*2048kB 0*4096kB 0*8192kB 0*16384kB = 1520kB
DMA32: empty
Normal: empty
HighMem: empty
Free swap: 0kB
32768 pages of RAM
439 free pages
12249 reserved pages
403 slab pages
0 pages shared
0 pages swap cached
Out of Memory: Kill process 277 (ffmpeg) score 1910 and children.
Out of memory: Killed process 277 (ffmpeg).
Killed
И полный ступор, не реагирует на команды. Данные по доступной памяти, сразу после перезагрузки:
free
total used free shared buffers
Mem: 125684 47880 77804 0 0
Swap: 0 0 0
Total: 125684 47880 77804
Re: FFmpeg: кодирование/декодирование H264
Я не сомневаюсь что у вас всё получится с ffmpeg, но с meccoder-ом проблем будет меньше
1) Сначала mencoder -ovc help Если в списке кодеков будет x264, то всё нормально. Если не будет то придётся пересобрать mplayer.
2) Кодируем так как тут написано:
http://www.mplayerhq.hu/DOCS/HTML/ru/menc-feat-x264.html
http://www.mplayerhq.hu/DOCS/HTML/ru/encoding-guide.html
1) Сначала mencoder -ovc help Если в списке кодеков будет x264, то всё нормально. Если не будет то придётся пересобрать mplayer.
2) Кодируем так как тут написано:
http://www.mplayerhq.hu/DOCS/HTML/ru/menc-feat-x264.html
http://www.mplayerhq.hu/DOCS/HTML/ru/encoding-guide.html
- sspphheerraa
- Сообщения: 1375
- ОС: Gentoo
Re: FFmpeg: кодирование/декодирование H264
На данный момент swap-а нет, систему плата берёт по nfs.
- sspphheerraa
- Сообщения: 1375
- ОС: Gentoo
Re: FFmpeg: кодирование/декодирование H264
попробуй сделать
вот например так:
# dd if=/dev/zero of=/swap bs=1M count=1024
# mkswap /swap
# swapon /swap
(это на гиг, хотя цифры можешь подобрать свои)
вот например так:
# dd if=/dev/zero of=/swap bs=1M count=1024
# mkswap /swap
# swapon /swap
(это на гиг, хотя цифры можешь подобрать свои)
Sspphheerraa
Re: FFmpeg: кодирование/декодирование H264
sspphheerraa писал(а): ↑20.01.2010 23:52попробуй сделать
вот например так:
# dd if=/dev/zero of=/swap bs=1M count=1024
# mkswap /swap
# swapon /swap
(это на гиг, хотя цифры можешь подобрать свои)
Спасибо, попробую! Но этот фокус может быть пройдёт при nfs-системе. В идеале, на мой взгляд, тест надо провести на изолированой системе, а на плате установлен флеш 128 MB, что явно недостаточно для создания "объёмного" swap-а.
Re: FFmpeg: кодирование/декодирование H264
Хотел бы поднять тему. У меня не получается мюкс из ts (AVC) в любой другой контейнер, в основном, конечно - MP4, матрешку делаю по-другому. В общем, стабильно получается что звуковая записывается как надо, а первые фреймы видео-дороги - одними нулями:
Так что mplayer, mencoder и сам ffmpeg в дальнейшем, из получившегося файла считают, что перед ними только аудиофайл. Обрезка тоже не помогает: обрезанный файл все равно начинается "с нулей". Сначала грешил на транспортный поток, а потом взял заведомо исправный TS файл (тоже в h264) - та же картина, разница только в количестве обнуленных фреймов. Кто-нибудь знает, можно это победить какими-нибудь опциями ?
UPD: Увы в рассылке разработчиков отсылают к другим кодерам http://ffmpeg.org/pipermail/ffmpeg-user/20...ber/002598.html
((((
Spoiler
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 6 fps= 1 q=-1.0 size= 127kB
time=00:00:10.82 bitrate= 96.0kbits/frame= 41 fps= 7 q=-1.0 size= 134kB
time=00:00:11.40 bitrate= 96.0kbits/frame= 60 fps= 9 q=-1.0 size= 183kB
time=00:00:11.90 bitrate= 126.0kbits/frame= 96 fps= 13 q=-1.0 size= 279kB
time=00:00:12.38 bitrate= 184.3kbits/frame= 120 fps= 15 q=-1.0 size= 381kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 0 fps= 0 q=-1.0 size= 0kB
time=00:00:00.00 bitrate= 0.0kbits/frame= 6 fps= 1 q=-1.0 size= 127kB
time=00:00:10.82 bitrate= 96.0kbits/frame= 41 fps= 7 q=-1.0 size= 134kB
time=00:00:11.40 bitrate= 96.0kbits/frame= 60 fps= 9 q=-1.0 size= 183kB
time=00:00:11.90 bitrate= 126.0kbits/frame= 96 fps= 13 q=-1.0 size= 279kB
time=00:00:12.38 bitrate= 184.3kbits/frame= 120 fps= 15 q=-1.0 size= 381kB
Так что mplayer, mencoder и сам ffmpeg в дальнейшем, из получившегося файла считают, что перед ними только аудиофайл. Обрезка тоже не помогает: обрезанный файл все равно начинается "с нулей". Сначала грешил на транспортный поток, а потом взял заведомо исправный TS файл (тоже в h264) - та же картина, разница только в количестве обнуленных фреймов. Кто-нибудь знает, можно это победить какими-нибудь опциями ?
UPD: Увы в рассылке разработчиков отсылают к другим кодерам http://ffmpeg.org/pipermail/ffmpeg-user/20...ber/002598.html
((((
бывает же такое ???
- sspphheerraa
- Сообщения: 1375
- ОС: Gentoo
Re: FFmpeg: кодирование/декодирование H264
Выложите кусок проблемного ts файла. Попробуем разобраться, что да как.
Sspphheerraa
Re: FFmpeg: кодирование/декодирование H264
Вот вам 2-секундное отставание старта видео от звука в VLC и потеря этих самых 2 секунд остальными проигрывателями, после ffmpeg -i tunnels.ts -vcodec copy -acodec copy -f mp4 tunnels.mp4. Файл размером ~67Мб
http://narod.ru/disk/43143593001.2c33832a3...unnels.mp4.html
Тут более маленький файлик ~4.5Мб
http://narod.ru/disk/43142452001.b45d3dcce.../primer.ts.html
И то, что из него получилось через ffmpeg -i primer.ts -vcodec copy -acodec copy -f mp4 primer.mp4 - полная утрата видео дорожки
http://narod.ru/disk/43142669001.8c4136cb7...primer.mp4.html
http://narod.ru/disk/43143593001.2c33832a3...unnels.mp4.html
Тут более маленький файлик ~4.5Мб
http://narod.ru/disk/43142452001.b45d3dcce.../primer.ts.html
И то, что из него получилось через ffmpeg -i primer.ts -vcodec copy -acodec copy -f mp4 primer.mp4 - полная утрата видео дорожки
http://narod.ru/disk/43142669001.8c4136cb7...primer.mp4.html
бывает же такое ???
Re: FFmpeg: кодирование/декодирование H264
Вот тебе команда которая кодирует "более маленький файлик"
Код: Выделить всё
/usr/local/bin/mencoder -ovc x264 -x264encopts bframes=0:qp=26:threads=0:me=hex:me_range=16:subq=5:scenecut=40:frameref=1:deadzone_inter=21:deadzone_intra=11:direct=auto:subme=7:weightp=0:mvrange=-1:merange=16:mvrange-thread=-1:rc-lookahead=40:cqm=flat:noglobal_header:nointerlaced:partitions=p8x8,b8x8,i8x8,i4x4:8x8dct:ip_factor=14.0:keyint=250:keyint_min=50:fast_pskip:dct_decimate:cabac:trellis=0:aq_mode=2:aq_strength=1.0:nodeblock:nopsnr:nossim -vf harddup -oac copy -mc 0 -noautosub -sid 32 -noaspect -noskip -of lavf -lavfopts format=mp4 /home/rodegast/primer.ts -sid 32 -sb 100000 -field-dominance -1 -o /home/rodegast/primer.mp4
- sspphheerraa
- Сообщения: 1375
- ОС: Gentoo
Re: FFmpeg: кодирование/декодирование H264
kotnaton писал(а): ↑09.03.2012 02:41Тут более маленький файлик ~4.5Мб
http://narod.ru/disk/43142452001.b45d3dcce.../primer.ts.html
Какой-то кривоватый файл. MPlayer, VLC, ffplay, Avidemux - все его играют по разному.
Как правильно? с чего должен начинаться звук? со слов "свежие напитки" / "перспективный поезд" / "средства наблюдения" ....
Sspphheerraa