fishxinyu's picture
download
raw
1.65 kB
#!/usr/bin/env bash
# Stack the five side-by-side arms into one labelled comparison video.
# Each row is [pose reference | generated output], captioned with the RoPE shift applied, the lag
# it predicts, and the lag actually measured by score_arms.py.
set -euo pipefail
HERE=/home/xinyuy/flexvideo/LTX-2/test_temporal_offset
SRC=$HERE/out_viz/with_condition
FONT=/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
LABELS=(
"A_base|A reference | output RoPE +0 predicted lag 0 measured 0"
"B_rope_p8|B reference | output RoPE +8 predicted lag -8 measured -8"
"C_rope_p16|C reference | output RoPE +16 predicted lag -16 measured -16"
"D_rope_m16|D reference | output RoPE -16 predicted lag +16 measured +16"
"E_content_p16|E reference | output CONTENT +16 (control) predicted lag -16 measured -16"
)
inputs=() ; filters=() ; labels=""
i=0
for entry in "${LABELS[@]}"; do
IFS='|' read -r arm text <<<"$entry"
inputs+=(-i "$SRC/$arm.mp4")
# Escape the caption for drawtext, then reserve a 40px black bar above each row for it.
esc=${text//:/\\:}
filters+=("[$i:v]scale=960:320,pad=960:360:0:40:black,drawtext=fontfile=$FONT:text='$esc':fontcolor=white:fontsize=17:x=8:y=12[v$i]")
labels+="[v$i]"
i=$((i+1))
done
ffmpeg -y -loglevel error "${inputs[@]}" \
-filter_complex "$(IFS=';'; echo "${filters[*]}");${labels}vstack=inputs=$i[out]" \
-map "[out]" -r 24 -c:v libx264 -crf 18 -pix_fmt yuv420p "$HERE/comparison_grid.mp4"
echo "wrote $HERE/comparison_grid.mp4"
ffprobe -v error -select_streams v:0 -show_entries stream=width,height,nb_frames -of csv=p=0 "$HERE/comparison_grid.mp4"

Xet Storage Details

Size:
1.65 kB
·
Xet hash:
87fe33dac2d14ad5a5cb58ae3878f340b9ec07b425a348f6003a6d8a0468b321

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.