audio-video-cmd

用于集中记录本地调试、播放、录制、转码等音视频相关命令。

RTSP 低延迟播放命令

场景:camera_svc 内嵌 RTSP demo,局域网使用普通 UDP 播放命令仍可能受到 ffplay 默认缓冲影响。

普通播放命令:

1
ffplay -rtsp_transport udp rtsp://<BOARD_IP>:8554/live0

低延迟预览建议使用:

1
2
3
4
5
6
7
8
9
10
ffplay \
-fflags nobuffer \
-flags low_delay \
-framedrop \
-probesize 32 \
-analyzeduration 0 \
-max_delay 0 \
-reorder_queue_size 0 \
-rtsp_transport udp \
rtsp://<BOARD_IP>:8554/live0

验证结论:加上以上低延迟参数后,局域网预览主观感觉基本无延迟。

RTSP UDP 方式二:保留低延迟参数,增加 200ms 抖动缓冲

用途:当 UDP 播放出现 H.264 error while decoding MBcabac decode 等错误时,保留低延迟方向,但给 RTP 乱序/抖动留 200ms 恢复窗口。

1
2
3
4
5
6
7
8
9
10
ffplay \
-fflags nobuffer \
-flags low_delay \
-framedrop \
-sync ext \
-probesize 32 \
-analyzeduration 0 \
-max_delay 200000 \
-rtsp_transport udp \
rtsp://<BOARD_IP>:8554/live0

说明:-max_delay 200000 单位是微秒,即 200ms。相比 -max_delay 0,延迟会增加,但对 Wi-Fi 抖动、RTP 包乱序和迟到更宽容。-sync ext 使用外部时钟同步,更倾向于对齐真实时间,减少卡顿后继续按旧视频时间戳慢慢播放导致的延迟累积。

T23 rtsp_svc RTSP TCP 播放

场景:rtsp_svc 独立模块在板端 8554 端口提供 Basic Auth RTSP;主码流为 /live/main,子码流为 /live/sub

说明:Public 笔记不保存真实密码;本地使用时把 <PASSWORD> 替换为设备当前密码。

主码流:

1
2
ffplay -rtsp_transport tcp -fflags nobuffer -flags low_delay -framedrop \
'rtsp://admin:<PASSWORD>@<HOST_IP>:8554/live/main'

子码流:

1
2
ffplay -rtsp_transport tcp -fflags nobuffer -flags low_delay -framedrop \
'rtsp://admin:<PASSWORD>@<HOST_IP>:8554/live/sub'

ffplay 连续播放文件

来源:原短笔记 ffplay,已合并。

1
seq 1 70 | xargs -I {} ffplay -autoexit 0_{}.ts

MP4 / CMAF / DASH 转码

来源:原短笔记 mp4转码,已合并。

1
gpac -i input.mp4 -o output.mp4:cmaf=cmfc:store=frag:cdur=0.5
1
gpac -i input.mp4 -o outdir/stream.mpd:segdur=2:cdur=0.5:profile=dashif.ingest:muxtype=mp4:cmfc