Sida 1 av 1

dela upp en ljudfil i mindre filer med ffmpeg

Postat: 02 nov 2008, 02:16
av whac
Hej hur gör jag för att dela upp en ljudfil i 9 sekunders delar med ffmpeg? Någon som vet?

Re: dela upp en ljudfil i mindre filer med ffmpeg

Postat: 02 nov 2008, 03:59
av Konservburk
Om du ska använda ffmpeg tror jag att du måste ange en massa olika startpunkter utefter hela filen. Känns ju inte direkt som det bästa sättet att göra det på. Om du inte har något emot mkvmerge från mkvtoolnix så är den ganska smidig för just sånt här:

Kod: Markera allt

mkvmerge -a 0 input.wav --split duration:9s -o output.mka

Re: dela upp en ljudfil i mindre filer med ffmpeg

Postat: 11 nov 2008, 18:56
av whac
tackar. hur gör jag sen på ett smidigt sätt för att få dem till 44100hz wav filer?

Re: dela upp en ljudfil i mindre filer med ffmpeg

Postat: 11 nov 2008, 20:47
av Konservburk
whac skrev:tackar. hur gör jag sen på ett smidigt sätt för att få dem till 44100hz wav filer?
mkvmerge gör inte om filerna över huvud taget. Det enda den gör är att lägga in ljudet i ett orört skick i en (eller i det här fallet flera) matroska-behållare. Med mkvextrakt går det att plocka ut ljudet ur matroska-behållaren och lägga tillbaka det i likadana behållare som det var från början.

Kod: Markera allt

#!/bin/sh
mkvmerge -a 0 "$1" --split duration:"${2-9s}" -o "${1%.*}".mka &&
for file in "${1%.*}"-*.mka
do mkvextract tracks "$file" 1:"${file%.mka}.${1##*.}" && rm -f "$file"
done

Kod: Markera allt

./split.sh fil.mp3 9s
Det spelar inte ens någon roll om det är wav eller mp3, eftersom själva ljudströmmen inte rörs. Så om jag har en 22kHz wav så kommer det fortfarande att vara 22kHz wav efteråt. Vill du t.ex. sampla om så är det nog enklast att göra det innan du ens blandar in mkvmerge i det hela:

Kod: Markera allt

ffmpeg -i fil.mp3 -ar 44100 fil.wav
./split fil.wav 9s