first commit
This commit is contained in:
commit
26b0b48de5
|
@ -0,0 +1 @@
|
||||||
|
examples
|
|
@ -0,0 +1,52 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# usage :
|
||||||
|
# ./reunite.sh video-name.part1.mp4
|
||||||
|
|
||||||
|
filename=$(basename -- "$1")
|
||||||
|
extension="${filename##*.}"
|
||||||
|
filename=$(echo "${filename%.*}" | sed -r 's/(.+)\.part[0-4]{1}$/\1/g')
|
||||||
|
|
||||||
|
# Extract audio track from one of the parts
|
||||||
|
|
||||||
|
ffmpeg -i $1 -acodec copy $filename.aac
|
||||||
|
|
||||||
|
# Let's use more explicit names for manipulation
|
||||||
|
|
||||||
|
mv $filename.part1.$extension even_odd.mp4
|
||||||
|
mv $filename.part2.$extension even_even.mp4
|
||||||
|
mv $filename.part3.$extension odd_odd.mp4
|
||||||
|
mv $filename.part4.$extension odd_even.mp4
|
||||||
|
|
||||||
|
# Rotate the 4 sub-videos clockwise in order to merge them
|
||||||
|
|
||||||
|
ffmpeg -i even_odd.mp4 -vf "transpose=1" even_90cw_odd.mp4
|
||||||
|
ffmpeg -i even_even.mp4 -vf "transpose=1" even_90cw_even.mp4
|
||||||
|
|
||||||
|
ffmpeg -i odd_odd.mp4 -vf "transpose=1" odd_90cw_odd.mp4
|
||||||
|
ffmpeg -i odd_even.mp4 -vf "transpose=1" odd_90cw_even.mp4
|
||||||
|
|
||||||
|
|
||||||
|
# Merge the 4 sub-videos into 2
|
||||||
|
|
||||||
|
ffmpeg -i even_90cw_odd.mp4 -i even_90cw_even.mp4 -filter_complex "[0][1]vstack,il=l=i:c=i" even_90cw.mp4
|
||||||
|
ffmpeg -i odd_90cw_odd.mp4 -i odd_90cw_even.mp4 -filter_complex "[0][1]vstack,il=l=i:c=i" odd_90cw.mp4
|
||||||
|
|
||||||
|
# Rotate the 2 videos back counter-clockwise
|
||||||
|
|
||||||
|
ffmpeg -i odd_90cw.mp4 -vf "transpose=2" odd.mp4
|
||||||
|
ffmpeg -i even_90cw.mp4 -vf "transpose=2" even.mp4
|
||||||
|
|
||||||
|
# Merge the 2 videos
|
||||||
|
|
||||||
|
ffmpeg -i odd.mp4 -i even.mp4 -filter_complex "[0][1]vstack,il=l=i:c=i" $filename.merged_no_sound.mp4
|
||||||
|
|
||||||
|
# Merge video with audio track
|
||||||
|
|
||||||
|
ffmpeg -i $filename.aac -i $filename.merged_no_sound.mp4 $filename.merged.mp4
|
||||||
|
|
||||||
|
# Remove manipulation files
|
||||||
|
|
||||||
|
rm even_odd.mp4 even_even.mp4 odd_odd.mp4 odd_even.mp4 even_90cw_odd.mp4 even_90cw_even.mp4 odd_90cw_odd.mp4 odd_90cw_even.mp4 even_90cw.mp4 odd_90cw.mp4 odd.mp4 even.mp4 $filename.merged_no_sound.mp4 $filename.aac
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# See :
|
||||||
|
# https://stackoverflow.com/questions/49955100/how-do-i-split-a-video-to-2-separate-files-for-odd-and-even-fields-using-ffmpeg
|
||||||
|
# Et :
|
||||||
|
# https://korben.info/ffmpeg-pour-les-nuls.html
|
||||||
|
|
||||||
|
|
||||||
|
# Split the 1 video in 2
|
||||||
|
|
||||||
|
ffmpeg -i $1 -filter_complex "[0]il=l=d:c=d,split[o][e];[o]crop=iw:ih/2:0:0[odd];[e]crop=iw:ih/2:0:ih/2[even]" -map "[odd]" odd.mp4 -map "[even]" even.mp4
|
||||||
|
|
||||||
|
|
||||||
|
# Rotate the 2 videos clockwise
|
||||||
|
|
||||||
|
ffmpeg -i odd.mp4 -vf "transpose=1" odd_90cw.mp4
|
||||||
|
ffmpeg -i even.mp4 -vf "transpose=1" even_90cw.mp4
|
||||||
|
|
||||||
|
|
||||||
|
# Split each of the 2 videos in 2
|
||||||
|
# We now have 4 videos
|
||||||
|
|
||||||
|
ffmpeg -i odd_90cw.mp4 -filter_complex "[0]il=l=d:c=d,split[o][e];[o]crop=iw:ih/2:0:0[odd];[e]crop=iw:ih/2:0:ih/2[even]" -map "[odd]" odd_90cw_odd.mp4 -map "[even]" odd_90cw_even.mp4
|
||||||
|
ffmpeg -i even_90cw.mp4 -filter_complex "[0]il=l=d:c=d,split[o][e];[o]crop=iw:ih/2:0:0[odd];[e]crop=iw:ih/2:0:ih/2[even]" -map "[odd]" even_90cw_odd.mp4 -map "[even]" even_90cw_even.mp4
|
||||||
|
|
||||||
|
# Rotate these 4 video back to normal (counter-clockwise)
|
||||||
|
|
||||||
|
ffmpeg -i even_90cw_odd.mp4 -vf "transpose=2" even_odd.mp4
|
||||||
|
ffmpeg -i even_90cw_even.mp4 -vf "transpose=2" even_even.mp4
|
||||||
|
ffmpeg -i odd_90cw_odd.mp4 -vf "transpose=2" odd_odd.mp4
|
||||||
|
ffmpeg -i odd_90cw_even.mp4 -vf "transpose=2" odd_even.mp4
|
||||||
|
|
||||||
|
# Get filename
|
||||||
|
|
||||||
|
filename=$(basename -- "$1")
|
||||||
|
extension="${filename##*.}"
|
||||||
|
filename="${filename%.*}"
|
||||||
|
|
||||||
|
# Extract audio from original file
|
||||||
|
|
||||||
|
ffmpeg -i $1 -acodec copy $filename.aac
|
||||||
|
|
||||||
|
# Merge audio track into each one of the 4 videos
|
||||||
|
|
||||||
|
ffmpeg -i $filename.aac -i even_odd.mp4 $filename.part1.$extension
|
||||||
|
ffmpeg -i $filename.aac -i even_even.mp4 $filename.part2.$extension
|
||||||
|
ffmpeg -i $filename.aac -i odd_odd.mp4 $filename.part3.$extension
|
||||||
|
ffmpeg -i $filename.aac -i odd_even.mp4 $filename.part4.$extension
|
||||||
|
|
||||||
|
# Remove useless files
|
||||||
|
|
||||||
|
rm odd.mp4 even.mp4 odd_90cw.mp4 even_90cw.mp4 even_90cw_odd.mp4 even_90cw_even.mp4 odd_90cw_odd.mp4 odd_90cw_even.mp4 even_odd.mp4 even_even.mp4 odd_odd.mp4 odd_even.mp4 $filename.aac
|
||||||
|
|
Loading…
Reference in New Issue