我有一堆使用GoPro Hero3摄像机录制的视频。 GoPro摄像机将录制内容分成20分钟左右。我写了一个脚本来遍历所有录音:
#!/bin/bash
STARTFOLDER="/media/users"
PATTERN="GOPR"
MARKER="converted"
FILELIST=$(find "$STARTFOLDER" -type f -name "*$PATTERN*.MP4" ! -name "*$MARKER*")
while read FILEPATH; do
# New file name
BN=$(basename "$FILEPATH" '.MP4')
BP=$(dirname "$FILEPATH")
NEWFILEPATH="$BP/$BN-$MARKER.MP4"
# Skip result files
ISRESULT=$(echo "$BN" | grep -e "$MARKER\\.MP4\$")
if test -n "$ISRESULT"; then
echo ".. skipping (is a result file)"
continue
fi
# Skip processed files
if test -f "$NEWFILEPATH"; then
echo ".. skipping (result file exists)"
continue
fi
# Process file here
done < <(echo -e "$FILELIST")
/ media / users文件夹的结构如下:
/media/users
user1
data
GoPro
GOPR0281-conv.MP4
GP010281-conv.MP4
GP020281-conv.MP4
GP030281-conv.MP4
user2
data
GoPro
GOPR0282-conv.MP4
GP010282-conv.MP4
GP020282-conv.MP4
GP030282-conv.MP4
GP040282-conv.MP4
上面的脚本遍历每个MP4文件。我现在想做的是将每个GoPro目录中的所有MP4文件合并到一个文件中。这意味着,对于user1,应该只有一个文件/media/users/user1/data/gopro_merged.mp4;对于user2,应该只有一个文件/media/users/user2/data/gopro_merged.mp4,依此类推。合并应确保没有信息丢失,即,就像是连续记录一样。该怎么办?
第二,合并文件后,我想从每个gopro_merged.mp4文件的开头和结尾处减少一定的时间。我想在一个单独的文件(例如,带有两个数字的csv文件)中提供的每个文件的开头和结尾处要剪切的数量。该怎么办?