Communitygithub.com

PrankMedic/video-phu-hinh

Ajoute des superpositions graphiques, du b-roll et des animations selon la voix pour les vidéos de présentateurs : réduction du cadre du visage, compteurs, listes, comparaisons, étapes, diagrammes à barres et sous-titres karaoké avec Remotion.

Qu'est-ce que video-phu-hinh ?

Cette compétence permet de produire des vidéos de présentateur enrichies de superpositions graphiques dynamiques, synchronisées avec la parole. Elle est conçue pour les créateurs souhaitant garder la présence du locuteur tout en mettant l'accent sur du texte et des visuels, réduisant le cadre du visage à un petit format. Le skill prend en charge divers types de contenu : mots-clés animés, nombres qui s'incrémentent, listes, comparaisons, étapes numérotées, diagrammes à barres et sous-titres karaoké, le tout contrôlé par une structure de beats temporels. Il repose sur Remotion pour le rendu vidéo et nécessite un pipeline de préparation audio (détection des bafouillages, normalisation LUFS) et de validation des données (vérification des repères, des collisions de cadre, et du placement du visage). Les utilisateurs doivent fournir un fichier JSON détaillant les props, puis exécuter des scripts de vérification avant le rendu final. Le skill ne doit pas traiter de médias contenant des données identifiables ; ces parties doivent être exclues au préalable.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/PrankMedic/NoleXSapien/tree/main/skills/video-phu-hinh

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Video phủ hình theo lời

Dùng khi cần giữ giọng và sự hiện diện người nói nhưng ưu tiên khung nhỏ, chữ và đồ hoạ. Đọc CLAUDE.md, review nội dung và nguồn, đề xuất định dạng rồi đợi chọn nếu chưa chọn. Không xử lý media có dữ liệu nhận diện; dừng phần đó để người phụ trách loại bỏ trước. Không tự đăng, gửi, commit hay push.

  1. Chạy python3 scripts/chuan_bi_giong.py <video> Output/video/<slug>. Đọc báo cáo và nghe giọng gốc; phải dò nói vấp bằng scripts/tim_loi_noi.py trước khi cắt (script chuẩn bị giọng đã gọi, có thể chạy riêng khi sửa). Không suy ra hết nói vấp từ phụ đề đã làm gọn.
  2. Chuẩn hoá video nguồn thành canvas dọc 9:16 bằng letterbox, không cắt cận mặt. Đo face trên chính canvas này: {x,y,radius} chuẩn hoá 0–1, radius theo bề rộng, mặc định 0.14. Nguồn khác tỷ lệ phải chuyển trước; kiểm lại nếu mặt chuyển vị trí. Không có theo dõi mặt tự động; dùng vùng bao mọi vị trí mặt hoặc chia composition khi bố cục thay đổi. Chỉ dùng video đã loại bỏ nhận diện theo quy tắc dự án.
  3. Chuyển words {w,s,e} sang {text,startMs,endMs} với ms = giây × 1000. Giữ words gốc cùng segments gốc; audio từ video được cắt cùng segments. Không dùng đồng thời giọng cắt sẵn với words gốc. Media đặt trong public, đường dẫn tương đối. audio có thể rỗng vì PhuHinh dùng giọng trong video; music, musicVolume tuỳ chọn, nhạc không nằm trong lớp video co giãn.
  4. Lập beats {atPhrase,nth?,untilPhrase,untilNth?,mode,content,source?,box?}. Cụm cuối kết thúc ở endMs của từ cuối; nth đếm từ 0. Không chồng beats, mốc tăng dần. Khoảng trống tự về card; nên phủ toàn bộ lời bằng beats để kiểm nhịp rõ ràng. full: người nói vừa khung, contain, không cắt cận, tối đa 8 giây kể cả nhiều beat full liền nhau; card: người nói nhỏ góc trên, đồ hoạ dưới; over: đồ hoạ trong suốt, box tránh mặt cả lúc khung đang chuyển; cover: phủ kín bằng nền và đồ hoạ nhưng giọng video tiếp tục. Chuyển khung liên tục trong 650 ms.
  5. Content có kind là word, number, list, compare, steps, bars, và text. number thêm value, spoken là cụm số được nói, ví dụ value 12, spoken “mười hai”. spokenNth tuỳ chọn đếm lần xuất hiện cụm số trong chính beat, từ 0; mốc mục nth vẫn theo toàn bộ lời đã cắt. Giá trị chạy lên và chỉ đạt đủ khi nói xong cụm số. Các kiểu nhiều mục dùng items:[{text,atPhrase,nth?,value?,spoken?}], từng mục chỉ hiện khi nói đến; bars dùng value, compare chia cột, steps có mũi tên. spoken là ánh xạ thủ công cần người kiểm xác nhận ý nghĩa với value; script không hiểu ngữ nghĩa số viết bằng chữ. Không đặt số sớm trong tiêu đề hoặc nhãn mục; để value phụ trách hiện số. Giữ tối đa vài mục ngắn để không tràn vùng. Chữ chính 72 px trở lên.
  6. Box {x,y,width,height} tính bằng px 1080×1920, giới hạn x 64–1016, y 100–1260; mặc định card ở y620, over y900. Phụ đề y1330 trong vùng 1300–1520. Nguồn dưới phụ đề phải có tác giả/tổ chức, năm, link và ngày truy cập cho thông tin y khoa; dữ kiện chưa kiểm chứng phải ghi chờ duyệt. Nhãn giọng AI dùng aiVoice:true nếu cần.
  7. Viết JSON chứa props, chạy python3 scripts/kiem_phu_hinh.py <du-lieu.json>; phải sửa mốc không thấy, full dài, over đè mặt, số không có trong lời. Mã thoát 0 đạt kiểm dữ liệu, 1 lỗi kiểm, 2 lỗi đọc. Công cụ kiểm mặt ở khung ổn định và lấy mẫu 30 fps trong 650 ms sau mỗi lần chuyển khung; component kiểm thêm từng frame đang render. Mở frame thực tế để kiểm mặt di chuyển và chữ tràn. Sau đó tạo file TS trong studio/data export default {id:'VideoPhu',format:'PhuHinh',props:...}. Xem mau-moi.ts; MauPhuHinh là mẫu im lặng với placeholder video, không phải video đã duyệt.
  8. Chạy cd remotion && npx --no-install tsc --noEmit; render nháp bằng npx --no-install remotion render src/index.ts VideoPhu out/nhap.mp4 --codec h264. Xem mọi loại đồ hoạ, frame chuyển mode, đầu/cuối từng segment, nghe giọng xuyên cover, kiểm số đạt đủ đúng lúc, danh sách không hiện trước lời. Chạy dò lời trên bản cuối khi cần và nghe lại điểm nối.
  9. Chuẩn âm −14 LUFS bằng loudnorm hai lượt, đo true peak −1.5 dBTP, như mục chuẩn âm trong video-thuy-mac/SKILL.md; luôn ghi sang file khác và đo lại bản cuối. Bàn giao bản xem, nguồn, dữ liệu và phần chưa xác minh. Kiểm script và hình không thay duyệt y khoa/quảng cáo của người có trách nhiệm trước đăng.

Skills associés