$ ffmpeg -i video_no_audio.mp4 -filter:v "setpts=PTS/6" -shortest -an output.mp4
Last active
July 25, 2019 15:00
-
-
Save lyshie/7ac1e224277c7f6be9fca3e8fe240b4c to your computer and use it in GitHub Desktop.
四錄行車記錄器播放工具
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
######## 影片路徑 (L左 R右 F前 B後) | |
VID_L="/run/media/lyshie/SE1/DCIM/VID_L" | |
VID_R="/run/media/lyshie/SE1/DCIM/VID_R" | |
VID_F="/run/media/lyshie/SE/DCIM/VID_F" | |
VID_B="/run/media/lyshie/SE/DCIM/VID_B" | |
######## 檔案名稱 | |
######## /run/media/lyshie/SE/DCIM/VID_F/VID_20190616_204734.(ts|kml) => 2019-06-16 20:47:34 | |
filename=$(basename $1 | perl -pe 's/VID_(\d{4,4})(\d{2,2})(\d{2,2})_(\d{2,2})(\d{2,2})(\d{2,2})\.(ts|kml)/$1-$2-$3 $4:$5:$6/g') | |
echo ${filename} # 2019-06-16 20:47:34 | |
######## 紀錄檔案名稱 | |
vid_left="${VID_L}/${filename}*.ts" | |
vid_right="${VID_R}/${filename}*.ts" | |
vid_front="${VID_F}/${filename}*.ts" | |
vid_back="${VID_B}/${filename}*.ts" | |
######## 紀錄延遲播放的時間 | |
delay_left="0" | |
delay_right="0" | |
delay_front="0" | |
delay_back="0" | |
######## 五秒內的影片都視為同一時間 | |
for i in $(seq 0 5); do | |
next=$(date --date="${filename} ${i} second" "+%Y%m%d_%H%M%S") # 五秒後 | |
ago=$(date --date="${filename} ${i} second ago" "+%Y%m%d_%H%M%S") # 五秒前 | |
#### 左鏡頭影片 | |
if [ -f "${VID_L}/VID_${next}.ts" ]; then | |
vid_left="${VID_L}/VID_${next}.ts" # /run/media/lyshie/SE1/DCIM/VID_L/VID_20190616_204734.ts | |
delay_left=$(echo "${next}" | sed -e 's/_//g') # 20190616204734 | |
fi | |
if [ -f "${VID_L}/VID_${ago}.ts" ]; then | |
vid_left="${VID_L}/VID_${ago}.ts" | |
delay_left=$(echo "${ago}" | sed -e 's/_//g') | |
fi | |
#### 右鏡頭影片 | |
if [ -f "${VID_R}/VID_${next}.ts" ]; then | |
vid_right="${VID_R}/VID_${next}.ts" | |
delay_right=$(echo "${next}" | sed -e 's/_//g') | |
fi | |
if [ -f "${VID_R}/VID_${ago}.ts" ]; then | |
vid_right="${VID_R}/VID_${ago}.ts" | |
delay_right=$(echo "${ago}" | sed -e 's/_//g') | |
fi | |
#### 前鏡頭影片 | |
if [ -f "${VID_F}/VID_${next}.ts" ]; then | |
vid_front="${VID_F}/VID_${next}.ts" | |
delay_front=$(echo "${next}" | sed -e 's/_//g') | |
fi | |
if [ -f "${VID_F}/VID_${ago}.ts" ]; then | |
vid_front="${VID_F}/VID_${ago}.ts" | |
delay_front=$(echo "${ago}" | sed -e 's/_//g') | |
fi | |
#### 後鏡頭影片 | |
if [ -f "${VID_B}/VID_${next}.ts" ]; then | |
vid_back="${VID_B}/VID_${next}.ts" | |
delay_back=$(echo "${next}" | sed -e 's/_//g') | |
fi | |
if [ -f "${VID_B}/VID_${ago}.ts" ]; then | |
vid_back="${VID_B}/VID_${ago}.ts" | |
delay_back=$(echo "${ago}" | sed -e 's/_//g') | |
fi | |
done | |
######## 取得時間最早的影片,以此當基準 | |
mini=$(echo -e "${delay_left}\n${delay_right}\n${delay_front}\n${delay_back}" | sort -n | head -n 1) | |
######## 計算須延遲的秒數 | |
delay_left=$(echo "($delay_left - $mini) % 10" | bc) | |
delay_right=$(echo "($delay_right - $mini) % 10" | bc) | |
delay_front=$(echo "($delay_front - $mini) % 10" | bc) | |
delay_back=$(echo "($delay_back - $mini) % 10" | bc) | |
echo "$delay_left $delay_right $delay_front $delay_back" | |
#exit | |
######## 關閉所有播放中的影片 | |
pkill -x mpv | |
######## 前鏡頭播放 | |
( sleep $delay_front; mpv --no-border --geometry="960x500+480+0" ${vid_front} ) & | |
######## 後鏡頭播放 | |
( sleep $delay_back; mpv --no-border --geometry="960x500+480+500" ${vid_back} ) & | |
######## 左鏡頭播放 | |
( sleep $delay_left; mpv --no-border --geometry="480x500+0+0" ${vid_left} ) & | |
######## 右鏡頭播放 | |
( sleep $delay_right; mpv --no-border --geometry="480x500+1440+0" ${vid_right} ) & |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
#### Usage: ./join_mp4.sh /run/media/user/56E7-87E2/DCIM/F/FILE190704-143*.MOV | |
tmpfile=$(mktemp) | |
for f in "$@"; do | |
echo "file '${f}'" >> "${tmpfile}" | |
done | |
# ffmpeg -f concat -safe 0 -i "${tmpfile}" -vcodec copy -an -strict experimental "${tmpfile}.mp4" | |
ffmpeg -f concat -safe 0 -i "${tmpfile}" -vcodec copy -acodec aac -strict experimental "${tmpfile}.mp4" | |
unlink "${tmpfile}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment