Yeniden kodlama yapmadan bir AAC dosyasına meta veri eklemek için ffmpeg nasıl kullanılır?


14

Bir video dosyasından sadece ses akışını ayıklamak için ffmpeg kullanıyorum:

ffmpeg -i video.mp4 -vn -acodec copy audio.aac

Bu, herhangi bir meta veri içermeyen temiz bir ses dosyası üretir.

Meta veri eklemek için ffmpeg'de bir komut satırı seçeneği vardır:

ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.aac

Bu hatasız çalışır, ancak çıktı dosyası ffprobe ile kontrol edildiğinde meta veri etiketi yoktur.

Çıktı kabı mp4 olarak değiştirilirse, meta veriler ayarlanabilir ve çıktı dosyasında görünür:

ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.mp4

İşte ilginç kısım; mevcut bir .aac dosyasının meta verilerini düzenlemek için Banshee'yi kullanırsam, dosyayı aynı şekilde işlemek için ffmpeg kullanın, özgün meta veriler başarıyla yeni .aac dosyasına kopyalanır.

ffmpeg -i metadata.aac -vn -acodec copy audio.aac

ancak meta verileri değiştirme girişimlerinin hiçbir etkisi yoktur:

ffmpeg -i metadata.aac -vn -acodec copy -metadata title="My Title" audio.aac

Görünüşe göre .aac kapsayıcısı meta verileri tutabilir ve ffmpeg onu girişten çıktıya kopyalayabilir, ancak kopya kodek kullanıldığında değiştiremez.

Herkes yeniden kodlama yapmadan bir aac kapsayıcısında meta veri değiştirmek için ffmpeg almak için bir yol biliyor mu?

Alternatif olarak, dosya işlendikten sonra meta verileri ayarlamak için kullanabileceğim başka bir genel araç var mı?

Çok teşekkürler. Chris.

Yanıtlar:


12

Amaç, yeniden kodlamadan bir video dosyasından salt ses dosyası üretmek ve medya oynatıcılar tarafından tanınan meta verileri tanıtmaktı. Ortam Debian GNU / Linux'tur.

Bir cevap bulmak için beni doğru yola koyduğu için @ bootload'a teşekkür etmek istiyorum.

ffmpeg, .AAC çıktı dosyalarına meta veri etiketleri eklemeyi desteklemiyor gibi görünmektedir, ancak burada iki olası çözüm bulunmaktadır.

  1. Komut satırı yardımcı programları id3 ve id3v2 (standart depolardan edinilebilir) .aac ses dosyasına id3 etiketleri uygulayabilir. Nautilus hem v1 hem de v2 etiketi stillerini tanıdı, bu yüzden her ikisinin de çalışması gerekir. Aynı etiketler Banshee medya oynatıcısı tarafından da tanındı.
id3v2 -t "My Title" audio.aac
  1. ffmpeg, bir MP4 kapsayıcısına meta veri ekleyebilir, ancak Nautilus'ta bir .mp4 uzantısı video dosyası olarak görünür. Apple Inc., video dosyalarını (.m4v) ses dosyalarından (.m4a) ayırmak için MP4 kapsayıcısında standart olmayan uzantılar kullanır. Bu uzantılar Debian altında Nautilus ve ffmpeg tarafından tanınır. Yani,
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.m4a

Nautilus tarafından tanınan salt ses dosyası üretecek ve ffmpeg kapsayıcıya güvenli bir şekilde meta veri ekleyebilir.


3

Amaçlanan donanım nedir? Apple iP * cihazı için mi? Öyleyse, http://atomicparsley.sourceforge.net/ Aksi takdirde "UTF-8 kodlu INI" mex / demux yöntemini kullanarak http://ffmpeg.org/ffmpeg.html#Examples deneyin . (Meta verileri utf8 dosyası olarak ayıklayın ve değiştirin ve yeniden ekleyin).


Ortam Debian GNU / Linux'tur.
Chris C.26

Ffmpeg belgeleri, metada muxer / demuxer'ın nasıl kullanılacağı konusunda net değildir, ancak belge bağlantısı ortaya çıkan dosya biçimini gösterir. Bunun nasıl yapılacağına dair bir komut satırı örneği verebilir misiniz? Teşekkürler.
Chris C.26

@ChrisC iyi görünmüyor. Bunu doğrulamak için aac & ffmpeg özellikleri arasında dolaşmadan ffmpeg tarafından onurlandırılan meta veriler burada listelenmiş gibi görünüyor ~ wiki.multimedia.cx/index.php?title=FFmpeg_Metadata#Basic_Usage ve acc desteklenmiyor. Diğer formatlar için cli'yi kullanarak örneğin 'ffmpeg -i track05.wav -metadata title = "Parça # 5" -metadata author = "Bilinmeyen Sanatçı" -acodec alac -y track05.m4a şeklini izlersiniz . Genelleştirilmiş desen ffmpeg -i <SOURCE> -metadata key = "value" <SOURCE> şeklindedir. Bu tam olarak takip ettiğiniz süreçtir :(
bootload

Çok spesifik olalım. Kodlamak istediğiniz meta verilerin formatı nedir? ID3 konuşuyor muyuz? Sonunda hangi formatla çalışacaksınız?
bootload

AAC'nin neleri desteklediğini görmek için etrafa baktım. Resmi bir biçim olmayabilir, ancak Debian ID3V1 ve ID3V2 içinde her ikisi de işe yarıyor gibi görünüyor. Banshee, editörünü kullanırken ID3V2 etiketlerini koyuyor gibi görünüyor.
Chris C.

1

MP4Box ("gpac" paketinin bir parçası), AAC dosyalarını orijinal verileri değiştirmeden MP4 kaplarıyla zarflar. Meta veriler daha sonra hemen hemen her etiketleme yazılımı kullanılarak eklenebilir:

MP4Box -add old.aac new.mp4
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.