"Onlardan ses çıkarmak (mp3 veya ogg)" istediğinizi söylüyorsunuz. Ama ya mp4 dosyasındaki ses bunlardan biri değilse? yine de kod dönüştürmeniz gerekir. Peki neden ses formatı algılamasını ffmpeg'e bırakmıyorsunuz?
Bir dosyayı dönüştürmek için:
ffmpeg -i videofile.mp4 -vn -acodec libvorbis audiofile.ogg
Birçok dosyayı dönüştürmek için:
for vid in *.mp4; do ffmpeg -i "$vid" -vn -acodec libvorbis "${vid%.mp4}.ogg"; done
Tabii ki bit hızı gibi şeyleri ayarlamak için istediğiniz ses kodlaması için herhangi bir ffmpeg parametresini seçebilirsiniz.
Kullanım -acodec libmp3lame
uzantısını değiştirmek ve .ogg
için .mp3
mp3 kodlama için.
İstediğiniz ses gerçekten çıkarmak için, ses parçasını kullanarak bir dosyaya "kopyalayabilirsiniz" -acodec copy
. Tabii ki, temel fark kod dönüştürmenin yavaş ve cpu yoğun olması, ancak baytları bir dosyadan diğerine taşıdığınızda kopyalama gerçekten hızlıdır. Yalnızca ses parçasını nasıl kopyalayacağınız aşağıda açıklanmıştır (mp3 formatında olduğu varsayılarak):
ffmpeg -i videofile.mp4 -vn -acodec copy audiofile.mp3
Bu durumda, audiofile biçim o Not sahip konteyner neler tutarlı olacak şekilde (ses AAC formatı ise yani sen söylemek zorunda audiofile.aac
). ffprobe
Hangi codec bileşenine sahip olduğunuzu görmek için komutu kullanabilirsiniz , bu bazı bilgiler sağlayabilir:
ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -print_format csv=p=0 "videofile.mp4"
Ses kodekini otomatik olarak ayrıştırmanın ve ses dosyasını buna göre adlandırmanın olası bir yolu:
mkdir -p output
# current directory has to contain at least one .mp4 file
for vid in *.mp4; do
codec="$(ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -print_format csv=p=0 "$vid")"
case "$codec" in
mp3 ) filetype=mp3 ;;
vorbis ) filetype=ogg ;;
* ) filetype= ;;
esac
if [ "$filetype" ]; then
ffmpeg -i "$vid" -vn -acodec copy output/"${vid%.*}"."$filetype"
else
ffmpeg -i "$vid" -vn -acodec libvorbis output/"${vid%.*}".ogg
done
Notlar: çıktı dosyaları output
başlangıçta oluşturduğu alt dizinde oluşturulur (gerekirse). Mp3 ve vorbis dışındaki diğer kodekler için sesi ogg'e dönüştürür. Ubuntu 14.04'te standart depolarda ffmpeg yoktur, ancak gerekli yazılımı almak için ppa: mc3man / trusty-media deposu ekleyebilir ve ffmpeg paketini kurabilirsiniz. Ayrıntılar için buraya bakın.