Asf 파일을 ogg나 mp3로 변환할 수 있나요?

소리 부분만 추출하고 싶은데요.

동영상에서 사운드 부분만 원본 그대로 추출하는 방법이 있는 지는 잘 모르지만 사운드 변환이라면 꽤 많은 방법이 있는 걸로 알고 있습니다.

일단 사운드컨버터라는 유틸리티로 사운드 변환을 할 수 있다고 합니다.

또는 mplayer 와 oggenc 를 이용해서 변환할 수 있습니다.
oggenc 는 vorbis-tools 라는 꾸러미에 포함되어 있고, mplayer 야 거의 모든 미디어포맷을 재생할 수 있으므로 기본적으로 설치한 분이 많을 겁니다.

제가 그래서 oggenc 와 mplayer 를 이용하는 스크립트를 만들어 보았습니다.
[attachment=0:280ptxct]multi-converter.sh.tar.bz2[/attachment:280ptxct]
위의 파일을 압축해제해서 asf 파일이 있는 폴더에 집어 넣어주세요.
그 후 마우스로 클릭해서 실행해 주면 같은 이름의 ogg 파일이 만들어 집니다.

아니면 아래 코드의 내용을 그대로 복사하거나 참고해서 새로 스크립트를 만드셔도 됩니다.

[code:280ptxct]
#!/bin/sh

공백을 #X로 처리한 소스파일 목록을 얻습니다.

LIST=$(ls *.[aA][sS][fF] | sed ‘s/\ /#X/g’);
for i in $LIST; do
fullname=$(echo "$i" | sed ‘s/#X/\ /g’);
name=$(echo "$fullname" | sed ‘s/.[aA][sS][fF]//g’);
echo $fullname;
if [ ! -f "$fullname" ]; then
continue;
fi

태그

#a="artist name"
#t="$name"
#l="album name"
#d="2008"
#G="pop"

mkfifo로 파일을 만들면 읽기/쓰기를 동시에 할 수 있습니다.

mkfifo "/tmp/$name.fifo"

oggenc -a "$a" -t "$t" -l "$l" -d "$d" -G "$G" "/tmp/$name.fifo" -n "$name.ogg" &
#oggenc -b 64 -a "$a" -t "$t" -l "$l" -d "$d" -G "$G" "/tmp/$name.fifo" -n "$name.ogg" &
#oggenc --resample 22050 -b 32 -a "$a" -t "$t" -l "$l" -d "$d" -G "$G" "/tmp/$name.fifo" -n "$name.ogg" &
#lame -b 64 --ignore-tag-errors --ta "$a" --tt "$t" --tl "$l" --ty "$d" --tg "$G" "/tmp/$name.fifo" "$name.mp3" &

xterm -e
mplayer "$fullname" -ao pcm:file="/tmp/$name.fifo" ;
pid_player=$!
kill $pid_player ;
rm "/tmp/$name.fifo" ;

done
exit 0
[/code:280ptxct]

위의 코드를 보면 아시겠지만 폴더내에 있는 모든 asf 파일에서 사운드를 추출하여 ogg 로 변환하게 설정되어 있습니다.
그리고 조금만 수정해서 mp3 로 사운드를 추출할 수도 있고, asf 파일이 아닌 avi 나 wma 파일에서 변환할 수도 있습니다.

각자 쓰임에 맞게 수정해서 쓰세요.
터미널에서 chmod +x abcd.sh 또는 chmod 755 abcd.sh 같은 명령어로 스크립트에 실행권한 주는 거 잊지 마세요.