Closed eevan78 closed 7 months ago
@eevan78 there is not good documentation about this right now, so I see why you’ve raised an issue; thanks for having done so.
I am confident that you’re seeing this problem because your Windows system is missing FFmpeg
.
if you need direction how to get FFmpeg
installed on Windows, let me know.
@eevan78 the easiest way to get FFmpeg on Windows is with the chocolatey
package manager, but there are other places to download it; I list a couple on the README file.
Thanks for the explanation! I have a static build of ffmpeg, it was just not located on the path. I have placed it in appropriate folder, and now the tool works fine. There are some minor issues with metadata, but I can easily correct that after downloading files...
Thanks for the explanation! I have a static build of ffmpeg, it was just not located on the path. I have placed it in appropriate folder, and now the tool works fine. There are some minor issues with metadata, but I can easily correct that after downloading files...
@eevan78 Excellent! Can you elaborate on the metadata issues point? I'm happy to look into it
@ebb-earl-co I have looked into the code, and now I understand what is the FFMpeg used for.
Here are some of the things I have picked up. I have downloaded the Rust In Peace album in Atmos format. Files written to the disk are in fact Matroska containers (mka) but their extension is m4a:
Here is a detailed MediaInfo report on the first file:
General
Unique ID : 145728456914837341797917157298972942706 (0x6DA247A70346A769DC7D4FBBA2E46172)
Complete name : C:\Data\Software\Audio\tidal-wave\Megadeth\Rust In Peace [205605624] [1990]\01 - Holy Wars...The Punishment Due [A].m4a
Format : Matroska
Format version : Version 4
File size : 36.7 MiB
Duration : 6 min 35 s
Overall bit rate : 779 kb/s
Frame rate : 90 000.898 FPS
Movie name : Holy Wars...The Punishment Due
Track name/Position : 1/9
Writing application : Lavf60.20.100
Writing library : Lavf60.20.100
Copyright : ℗ 1990 Capitol Records, LLC
Comment : http://www.tidal.com/track/205605625
ErrorDetectionType : Per level 1
ALBUM : Rust In Peace
ALBUM_ARTIST : Megadeth
ARTIST : Megadeth
COMPOSER : Dave Mustaine
DATE : 1990-09-24
DISC : 1/1
FileExtension_Invalid : mkv mk3d mka mks
Video
ID : 2
Format : V_MJPEG
Codec ID : V_MJPEG
Width : 1 280 pixels
Height : 1 280 pixels
Display aspect ratio : 1.000
Frame rate mode : Constant
Frame rate : 90 000.898 FPS
Color space : YUV
Default : No
Forced : No
Color range : Full
Matrix coefficients : BT.470 System B/G
Audio
ID : 1
Format : E-AC-3 JOC
Format/Info : Enhanced AC-3 with Joint Object Coding
Commercial name : Dolby Digital Plus with Dolby Atmos
Codec ID : A_EAC3
Duration : 6 min 35 s
Bit rate mode : Constant
Bit rate : 768 kb/s
Channel(s) : 6 channels
Channel layout : L R C LFE Ls Rs
Sampling rate : 48.0 kHz
Frame rate : 31.250 FPS (1536 SPF)
Bit depth : 32 bits
Compression mode : Lossy
Stream size : 36.2 MiB (99%)
Service kind : Complete Main
Default : Yes
Forced : No
VENDOR_ID : [0][0][0][0]
Complexity index : 16
Number of dynamic objects : 15
Bed channel count : 1 channel
Bed channel configuration : LFE
Maybe this is the reason why metadata is messed up a bit (a detailed properties from foobar2000):
I also realize that metadata on Tidal is not perfect, so it's not easy to cover all quirks (compare the info for the first and second track - first has Mix engineer, second Mixer. For Atmos format, a nice feature to have is who was the Immersive mastering engineer):
(there is an Engineer metadata in Additional Credits):
I hope this can help a bit...
@eevan78 thank you for having put in the time to document this. A few points in response:
----:com.apple.iTunes:ENGINEER
tag. Now, one can add whatever tag that one dreams up for .m4a files in the ----:com.apple.iTunes:_____
format, but that doesn't mean that most or any audio players will be able to detect it----:com.apple.iTunes:MIXER
tagThese are valuable points that will help the value of tidal-wave
, so can you open a new issue with the changes you'd like to see? Just so that I can track the feature branch and development steps that correspond to changing these things.
Thank you for your input!
@eevan78 I'm working on some changes as we speak and here is the same file that you highlighted above, with output from ffprobe
:
c@darter-pro:~/projects/tidal-wave/Music/Megadeth/Rust In Peace [205605624] [1990]$ ffp 01\ -\ Holy\ Wars...The\ Punishment\ Due\ \[A\].m4a
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5f73100] stream 0, timescale not set
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '01 - Holy Wars...The Punishment Due [A].m4a':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomdby1iso2mp41
creation_time : 2021-11-17T20:52:06.000000Z
title : Holy Wars...The Punishment Due
artist : Megadeth
composer : Dave Mustaine
album : Rust In Peace
track : 1/9
disc : 1/1
date : 1990-09-24
REPLAYGAIN_TRACK_PEAK: 0.0
REPLAYGAIN_TRACK_GAIN: 0.0
REPLAYGAIN_ALBUM_PEAK: None
REPLAYGAIN_ALBUM_GAIN: None
ARTISTS : Megadeth
MIXER : Max Norman
ENGINEER : Mills Logan
ISRC : USUM72121699
LYRICIST : Dave Mustaine
BARCODE : 00602445253975
PRODUCER : Dave Mustaine;Mike Clink
album_artist : Megadeth
copyright : ℗ 1990 Capitol Records, LLC
comment : http://www.tidal.com/track/205605625
Duration: 00:06:35.14, start: 0.000000, bitrate: 777 kb/s
Stream #0:0[0x1](und): Audio: eac3 (ec-3 / 0x332D6365), 48000 Hz, 5.1(side), fltp, 768 kb/s (default)
Metadata:
creation_time : 2021-11-17T20:52:06.000000Z
handler_name : sound handler
vendor_id : [0][0][0][0]
Side data:
audio service type: main
replaygain: track gain - 0.000000, track peak - unknown, album gain - 0.000000, album peak - unknown,
Stream #0:1[0x0]: Video: mjpeg (Progressive), yuvj444p(pc, bt470bg/unknown/unknown), 1280x1280 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn (attached pic)
and mediainfo
:
c@darter-pro:~/projects/tidal-wave/Music/Megadeth/Rust In Peace [205605624] [1990]$ mediainfo 01\ -\ Holy\ Wars...The\ Punishment\ Due\ \[A\].m4a
General
Complete name : 01 - Holy Wars...The Punishment Due [A].m4a
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/dby1/iso2/mp41)
File size : 36.6 MiB
Duration : 6 min 35 s
Overall bit rate mode : Constant
Overall bit rate : 778 kb/s
Album : Rust In Peace
Album/Performer : Megadeth
Part/Position : 1
Part/Total : 1
Track name : Holy Wars...The Punishment Due
Track name/Position : 1
Track name/Total : 9
Performer : Megadeth
Composer : Dave Mustaine
Recorded date : 1990-09-24
Encoded date : UTC 2021-11-17 20:52:06
Tagged date : UTC 2021-11-17 20:52:06
ISRC : USUM72121699
Copyright : ℗ 1990 Capitol Records, LLC
Cover : Yes
Comment : http://www.tidal.com/track/205605625
REPLAYGAIN_TRACK_PEAK : 0.0
REPLAYGAIN_TRACK_GAIN : 0.0
REPLAYGAIN_ALBUM_PEAK : None
REPLAYGAIN_ALBUM_GAIN : None
ARTISTS : Megadeth
MIXER : Max Norman
ENGINEER : Mills Logan
LYRICIST : Dave Mustaine
BARCODE : 00602445253975
PRODUCER : Dave Mustaine;Mike Clink
Audio
ID : 1
Format : E-AC-3 JOC
Format/Info : Enhanced AC-3 with Joint Object Coding
Commercial name : Dolby Digital Plus with Dolby Atmos
Codec ID : ec-3
Duration : 6 min 35 s
Bit rate mode : Constant
Bit rate : 768 kb/s
Channel(s) : 6 channels
Channel layout : L R C LFE Ls Rs
Sampling rate : 48.0 kHz
Frame rate : 31.250 FPS (1536 SPF)
Compression mode : Lossy
Stream size : 36.2 MiB (99%)
Service kind : Complete Main
Default : Yes
Alternate group : 1
Encoded date : UTC 2021-11-17 20:52:06
Tagged date : UTC 2021-11-17 20:52:06
Complexity index : Not present / 16
Number of dynamic objects : 15
Bed channel count : 1 channel
Bed channel configuration : LFE
Is this more consistent with what you expected?
@ebb-earl-co Yes, this looks excellent! Thanks for such a fast fix. This is very nice improvement! Now I think that there is no need to open another issue...
I have tried to download an album in Atmos format using Windows pyapp container. But after getting the first audio file is sucessfully written, it exits with the following:
The same happens if I try with one track from the same album. The track is downloaded properly:
What could be the problem here?