IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> per batch album art in ogg
Torben1
post Dec 6 2015, 23:45
Post #1


Member


Group: Full Members
Posts: 9
Joined: 19-April 14
Member No.: 19338
Mp3tag Version: 2.54



hi

ich hab ne batch datei geschrieben die mir aus allen mp4 und webm dateien aus einem ordner den musikstream rausholt, die tags kopiert und ein albumart generiert.

mit allen formaten die aac spuren tragen geht das auch, aber bei vorbis kann ich das album art nicht reinspeichern.

CODE
setlocal EnableDelayedExpansion

if not exist "convertedFiles" mkdir convertedFiles
if not exist "originalFiles" mkdir originalFiles
if not exist "tmp" mkdir tmp

for %%a in ("originalFiles/*.*") do (
  
set "inputName=%%a"
set "inputPath=originalFiles/%%a"
set "type=!inputName:~-4,4!"
set "tmpArt=tmp/%%a.png"
set "newtype=.m4a"
set "fin=convertedFiles/!inputName:~0,-4!!newtype!"
set "tmpAudio=tmp/%%a!newtype!"

if "!type!" == "webm" (
  set "newtype=.ogg"
  set "fin=convertedFiles/!inputName:~0,-5!!newtype!"
  rem bei webm muss eins mehr weggemacht werden, weil sonst 2 punkte in fin sind
  set "tmpAudio=tmp/%%a!newtype!"
)


ffmpeg -y -ss 4 -i "!inputPath!" -vf "pad=iw*2:ih:iw/2:0:black, crop=ih:ih, select=gte(n\,100)" -vframes 1 "!tmpArt!"
ffmpeg -i "!inputPath!" -y -map audio -codec:a copy -map_metadata 0 "!tmpAudio!"

rem m4a
if "!newtype!" == ".m4a" (
  atomicparsley "!tmpAudio!" --artwork "!tmpArt!" -o "!fin!"
)

rem ogg
if "!newtype!" == ".ogg" (
  ffmpeg -y -i "!tmpAudio!" -i "!tmpArt!" -map 0:0 -map 1:0 -c copy -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" "!fin!"
)

)


unten unter "rem ogg"

da sollte normalerweise per ffmpeg das album art aus ner png in die ogg gepackt werden. Die png wird auch zuverlässig erzeugt.

fehlermeldungen sind folgende:
[ogg @ 000000000440a1e0] Unsupported codec id in stream 1
und
Could not write header for output file #0 (incorrect codec parameters ?): Error number -22 occurred

danke.

GFM
Torben

This post has been edited by Torben1: Dec 6 2015, 23:59
Go to the top of the page
 
+Quote Post
DetlevD
post Dec 7 2015, 12:15
Post #2


Member


Group: Full Members
Posts: 6440
Joined: 26-May 06
From: Wuppertal, Germany, Planet Earth
Member No.: 3194
Mp3tag Version: 2.82



QUOTE (Torben1 @ Dec 6 2015, 23:45) *
... bei vorbis kann ich das album art nicht reinspeichern. ... da sollte normalerweise per ffmpeg das album art aus ner png in die ogg gepackt werden. ...

Muss für das Bild nicht ein codec angeben werden?
-codec:v libtheora

DD.20151207.1215.CET

Siehe auch ...
https://trac.ffmpeg.org/wiki/TheoraVorbisEncodingGuide

DD.20151228.1139.CET

This post has been edited by DetlevD: Dec 28 2015, 11:39


--------------------
* Beyond that, don't ask, when you don't know what to do with the answer. *
♥ home is where the heart is ♥
Go to the top of the page
 
+Quote Post
Torben1
post Dec 27 2015, 20:20
Post #3


Member


Group: Full Members
Posts: 9
Joined: 19-April 14
Member No.: 19338
Mp3tag Version: 2.54



hat nicht funktioniert. Aber danke.

Anscheinend werden tags bei oggs als vorbiscomment in form einer hashmap gespeichert. Der Name des vorbiscomments für album arts lautet "METADATA_BLOCK_PICTURE". Nur leider habe ich noch kein Programm mit dem ich ein vorbiscomment speichern kann gefunden.

ich hab zudem anstelle von atomicparsley jetzt mp4box drin, weil atomicparsley nicht alle generierten jpgs erkannt hat. Ich hab es momentan so drin, das oggs ohne albumart gespeichert werden. Hier der aktuelle code der auch soweit funktioniert:
CODE
setlocal EnableDelayedExpansion

if not exist "convertedFiles" mkdir convertedFiles
if not exist "originalFiles" mkdir originalFiles
if not exist "tmp" mkdir tmp
    
for %%a in ("originalFiles/*.*") do (
        
    set "inputName=%%a"
    set "inputPath=originalFiles/%%a"
    set "type=!inputName:~-4,4!"
    set "tmpArt=tmp/%%a.jpg"
    set "newtype=.m4a"
    set "fin=convertedFiles/!inputName:~0,-4!!newtype!"
    set "tmpAudio=tmp/%%a!newtype!"
    set "tmpAudioName=%%a!newtype!"
    
    if "!type!" == "webm" (
        set "newtype=.ogg"
        set "fin=convertedFiles/!inputName:~0,-5!!newtype!"
        rem bei webm muss eins mehr weggemacht werden, weil sonst 2 punkte in fin sind
        rem tmpaudio neu einstellen wegen den neuen newtype
        set "tmpAudio=tmp/%%a!newtype!"
        set "tmpAudioName=%%a!newtype!"
    )
    
    
    ffmpeg -y -ss 4 -i "!inputPath!" -vf "pad=iw*2:ih:iw/2:0:black, crop=ih:ih, select=gte(n\,100)" -vframes 1 "!tmpArt!"
    ffmpeg -i "!inputPath!" -y -map audio -codec:a copy -map_metadata 0 "!tmpAudio!"
    
    rem m4a
    if "!newtype!" == ".m4a" (
        rem atomicparsley "!tmpAudio!" --artwork "!tmpArt!" -o "!fin!"
        rem atomicparsley erkennt nicht alle jpgs
        
        mp4box -itags cover="!tmpArt!" "!tmpAudio!"
        move "tmp\!tmpAudioName!" "convertedFiles"
        ren "convertedFiles\!tmpAudioName!" "!inputName:~0,-4!!newtype!"
    )
    
    rem ogg
    if "!newtype!" == ".ogg" (
    
        rem ffmpeg -y -i "!tmpAudio!" -i "!tmpArt!" -map 0:0 -map 1:0 -c copy -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v comment="METADATA_BLOCK_PICTURE" -codec:v libtheora "!fin!"
        copy "tmp\!inputName!!newtype!" "convertedFiles"
        ren "convertedFiles\!inputName!!newtype!" "!inputName:~0,-5!!newtype!"
    )
    
)


This post has been edited by Torben1: Dec 27 2015, 20:23
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 24th May 2017 - 07:13