Є відеофайлу з відео реєстратора (AVtech DVR). Вихідне ім'я у нього .dv4 (Bosch Security Systems CCTV Video File) для його програвання є рідний програвач VideoPlayer.exe.
Задача зробити програвання відео з DVR відеореєстратора формату .dv4, засобами opensource.
За аналізом MedioInfo, це відео формату AVC (x264), прогресивний:
Тому для програвання треба дещо обробити зображення, розділити на поля, і об'єднати знову але у традиційному відеоформаті interlaced з послідовними кадрами .
Для виконання алгоритму використовуємо фільтри ffmpeg: split, crop, scale, framepack.
За бажанням можна зберегти файл для подальшого зберігання у рідному х264 форматі interleave.
Розмір файлу video.dv4 56М
Або до іншого формату x265 (hevc):
Задача зробити програвання відео з DVR відеореєстратора формату .dv4, засобами opensource.
За аналізом MedioInfo, це відео формату AVC (x264), прогресивний:
Загальна інформація Повна назва : video.dv4 Формат : AVC Формат/Відомості : Advanced Video Codec Розмір файлу : 55.6 МіБ FileExtension_Invalid : avc h264 264 Відео Формат : AVC Формат/Відомості : Advanced Video Codec Профіль формату : Baseline@L3 Налаштування формату : 1 Ref Frames Налаштування формату, CABAC : Ні Налаштування формату, RefFrames : 1 кадр Ширина кадру : 720 пікс. Висота кадру : 576 пікс. Співвідношення сторін екрану : 5:4 Простір кольору : YUV Субдискретизація хроматичності : 4:2:0 Бітова глибина : 8 біт Тип сканування : ПрогресивнийТому для програвання підходить програвач ffplay з пакунку ffmpeg.
ffplay -i video.dv4Але так як ресторатор записує відео у черезрядковому форматі (interlaced), то відео записано об'єднаному форматі по вертикалі, де перше поле (А) зверху, друге поле (В) знизу.
Оригінальне відео |
Тому для програвання треба дещо обробити зображення, розділити на поля, і об'єднати знову але у традиційному відеоформаті interlaced з послідовними кадрами .
Алгоритм розподілу кадрів |
ffplay -i video.dv4 -vf "split [maint][mainb];[maint] crop=iw:ih/2:0:0 [ftop];[mainb] crop=iw:ih/2:0:ih/2 [fbot]; [ftop]scale=iw:ih[f1]; [fbot]scale=iw:ih[f2]; [f1][f2]framepack=lines"Якщо треба вивести зображення з фільтром deinterlace - yadif:
ffplay -i video.dv4 -vf "split [maint][mainb];[maint] crop=iw:ih/2:0:0 [ftop];[mainb] crop=iw:ih/2:0:ih/2 [fbot]; [ftop]scale=iw:ih[f1]; [fbot]scale=iw:ih[f2]; [f1][f2]framepack=lines,yadif"
Результат програвання об'єднаних полів |
Розмір файлу video.dv4 56М
ffmpeg -i video.dv4 -vf "split [maint][mainb];[maint]crop=iw:ih/2:0:0[ftop];[mainb]crop=iw:ih/2:0:ih/2[fbot];ftop]scale=iw:ih[f1];[fbot]scale=iw:ih[f2];[f1][f2]framepack=lines" -flags +ildct -c:v libx265 out-264.mp4Розмір файлу out-264.mp4 39М
Загальна інформація Повна назва : out-264.mp4 Формат : MPEG-4 Профіль формату : Base Media Ідентифікатор кодеку : isom (isom/iso2/avc1/mp41) Розмір файлу : 39.2 МіБ Тривалість : 1 хв. 8 сек. Загальний бітрейт : 4 832 Кбіт/сек Програма кодування : Lavf58.27.102 Відео Ідентифікатор : 1 Формат : AVC Формат/Відомості : Advanced Video Codec Профіль формату : High@L3 Налаштування формату : CABAC / 4 Ref Frames Налаштування формату, CABAC : Так Налаштування формату, RefFrames : 4 кадр(-и,-ів) Ідентифікатор кодеку : avc1 Ідентифікатор кодеку/Відомості : Advanced Video Coding Тривалість : 1 хв. 8 сек. Бітрейт : 4 830 Кбіт/сек Ширина кадру : 720 пікс. Висота кадру : 576 пікс. Співвідношення сторін екрану : 5:4 Режим частоти кадрів : Постійний Частота кадрів : 25.000 кадр/сек Стандарт : PAL Простір кольору : YUV Субдискретизація хроматичності : 4:2:0 Бітова глибина : 8 біт Тип сканування : MBAFF Послідовність сканування : Непарні - перші Біт/(Пікселі*Кадри) : 0.466 Розмір потоку : 39.2 МіБ (100%) Бібліотека кодування : x264 core 157 r2970 5493be8 Налаштування бібліот. кодування : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=tff / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=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 Codec configuration box : avcC
Або до іншого формату x265 (hevc):
ffmpeg -i video.dv4 -vf "split [maint][mainb];[maint]crop=iw:ih/2:0:0[ftop];[mainb]crop=iw:ih/2:0:ih/2[fbot];[ftop]scale=iw:ih[f1];[fbot]scale=iw:ih[f2];[f1][f2]framepack=lines" -c:v libx265 -x265-params interlace=tff out-265.mp4Розмір файлу out-265.mp4 8.5М
Загальна інформація Повна назва : out-265.mp4 Формат : MPEG-4 Профіль формату : Base Media Ідентифікатор кодеку : isom (isom/iso2/mp41) Розмір файлу : 8.26 МіБ Тривалість : 1 хв. 8 сек. Загальний бітрейт : 1 017 Кбіт/сек Програма кодування : Lavf58.27.102 Відео Ідентифікатор : 1 Формат : HEVC Формат/Відомості : High Efficiency Video Coding Профіль формату : Main@L3@Main Ідентифікатор кодеку : hev1 Ідентифікатор кодеку/Відомості : High Efficiency Video Coding Тривалість : 1 хв. 8 сек. Бітрейт : 1 015 Кбіт/сек Ширина кадру : 720 пікс. Висота кадру : 576 пікс. Співвідношення сторін екрану : 5:4 Режим частоти кадрів : Постійний Частота кадрів : 25.000 кадр/сек Стандарт : PAL Простір кольору : YUV Субдискретизація хроматичності : 4:2:0 Бітова глибина : 8 біт Тип сканування : Прогресивний Біт/(Пікселі*Кадри) : 0.098 Розмір потоку : 8.24 МіБ (100%) Бібліотека кодування : x265 3.0_Au+18-768ab38fd5fd:[Windows][GCC 8.3.1][64 bit] 8bit+10bit Налаштування бібліот. кодування : cpuid=1049071 / frame-threads=3 / numa-pools=8 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=720x576 / interlace=1 / total-frames=0 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=3 / no-allow-non-conformance / no-repeat-headers / annexb / no-aud / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=25 / keyint=250 / gop-lookahead=0 / bframes=4 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=20 / lookahead-slices=0 / scenecut=40 / radl=0 / no-splice / no-intra-refresh / ctu=64 / min-cu-size=8 / no-rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=0 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / strong-intra-smoothing / max-merge=2 / limit-refs=3 / no-limit-modes / me=1 / subme=2 / merange=57 / temporal-mvp / weightp / no-weightb / no-analyze-src-pics / deblock=0:0 / sao / no-sao-non-deblock / rd=3 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=0.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=crf / crf=28.0 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=0 / ipratio=1.40 / pbratio=1.30 / aq-mode=2 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=0 / overscan=0 / videoformat=5 / range=0 / colorprim=2 / transfer=2 / colormatrix=2 / chromaloc=0 / display-window=0 / max-cll=0,0 / min-luma=0 / max-luma=255 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / no-hdr / no-hdr-opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=5 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=0 / refine-ctu-distortion=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-analysis-type=31 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei / no-hevc-aq / no-svt / qp-adaptation-range=1.00 Codec configuration box : hvcC
Немає коментарів:
Дописати коментар