像这样:
我有一个 60 秒的视频
我想要一个循环来实现这一点:
- 对于变量 A 来说,它是一个介于 0 到 58 之间的随机整数。
- 转到视频的第 A 秒。
- 播放2秒并返回步骤1。
我使用 VLC 媒体播放器。
答案1
哈哈,第一个回答这个问题的人就是问这个问题的人。
我使用 VLC,我的视频是 MP4 文件。这对我来说有效:
$ DIS=$( ffmpeg -i "the_path_of_your_video" 2>&1 | grep Duration | cut -d ' ' -f 4 | sed s/,// | awk -F: '{ print ($1 * 3600) + ($2 * 60) + $3 }' | cut -f1 -d. ) # get video Duration In Seconds
$ COS= # a integer: the Count Of Seconds to play every time
$ RTP=$( expr $DIS - $COS ) # Range To Play is from 0 to $RTP
$ while true; do cvlc --start-time $(( ( RANDOM % $RTP ) + 0 )) "the_path_of_your_video" --run-time $COS vlc://quit; done
假设有以下问题:
$ DIS=60
$ COS=2
$ RTP=58 # 60 - 2
$ while true; do cvlc --start-time $(( ( RANDOM % 58 ) + 0 )) "the_path_of_my_video" --run-time 2 vlc://quit; done
$ # A in the question is $(( ( RANDOM % 58 ) + 0 ))
$ # Close terminal window to kill this proccess