Created
December 28, 2015 22:05
-
-
Save maxwellito/90a0f1c94c3f6e63e52a to your computer and use it in GitHub Desktop.
Concat / join .ts segment files into an mp4 file
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 | |
# This script must be executed in the repo where | |
# the *.ts files are. | |
# It will concatenate the segments into one temp | |
# file which ffmpeg will reencode the audio track. | |
# By default the ouptup filename is output.mp4 | |
# but can be changed by providing the name as parameter. | |
# | |
# ffmpeg is required | |
# | |
# Example: | |
# $ ./m3u8-concat.sh trololo.mp4 | |
# Get the output file name | |
output=$1 | |
if [ -z "$output" ]; then | |
output="output.mp4" | |
fi | |
# Get length of segment in the current repo | |
seglen=`ls -la segment-*.ts | wc -l` | |
if [ -z "$seglen" ]; then | |
echo "Not segment file found" | |
exit 1 | |
fi | |
# Clean temp files | |
bin=`rm -f all.ts` | |
# Concat segments into one | |
a=1 | |
while [ "$a" -le $seglen ] | |
do | |
bin=`cat segment-$a.ts >> all.ts` | |
a=`expr $a + 1` | |
done | |
# Run ffmpeg to reencode the audio | |
bin=`ffmpeg -i all.ts -bsf:a aac_adtstoasc -vcodec copy $output` | |
echo $bin | |
# Delete temp files | |
bin=`rm -f all.ts` |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
bin=
cat segment-$a.ts >> all.ts
This catting approach produces an
all.ts
fine.But, when I ffprobe the all.ts it says the duration is only as long as one
ts
segment.Thoughts on why this could be happening?