Recherche avancée

Médias (1)

Mot : - Tags -/copyleft

Autres articles (66)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

Sur d’autres sites (9876)

  • FFmpeg warning : could not find codec parameters for stream 1 [closed]

    17 avril 2020, par Mocchi

    Hello : I have videos in the TS container that are Advanced Video Codec created by Elgato Game Capture HD60 Pro. I am trying to convert the TS videos because sometimes the Elgato MP4 output videos have audio/video sync issues. I have been trying for a few days now to get a clean remuxed video into MP4. I am using this simple batch file :

    



    ffmpeg -analyzeduration 10000M -probesize 10000000M -i "Game Video.ts" -acodec copy -vcodec copy "Game Video.mp4"
pause


    



    I always get these warnings no matter what I have tried. even if I use the -vn command to ignore the video. which makes me believe FFmpeg is seeing something or can't read something in my source video. The Source video Information via Media Info is here, there is 12 Audio streams which are all the same and I only put the first two here :

    



    General
ID : 1 (0x1)
Complete name : P :\Game Video.ts
Format : MPEG-TS
File size : 8.82 GiB
Duration : 54 min 43 s
Overall bit rate mode : Variable
Overall bit rate : 23.1 Mb/s

    



    Video
ID : 100 (0x64)
Menu ID : 2 (0x2)
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L3.1
Format settings : CABAC / 1 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 1 frame
Format settings, GOP : M=1, N=15
Codec ID : 27
Duration : 54 min 43 s
Bit rate mode : Variable
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate : 59.940 (60000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Color range : Full
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709

    



    Audio #1
ID : 101 (0x65)
Menu ID : 2 (0x2)
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Format version : Version 4
Muxing mode : ADTS
Codec ID : 15-2
Duration : 54 min 43 s
Bit rate mode : Variable
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 48.0 kHz
Frame rate : 46.875 FPS (1024 SPF)
Compression mode : Lossy
Delay relative to video : 13 ms
Language : English

    



    Audio #2
ID : 103 (0x67)
Menu ID : 2 (0x2)
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Format version : Version 4
Muxing mode : ADTS
Codec ID : 15-2
Duration : 54 min 43 s
Bit rate mode : Variable
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 48.0 kHz
Frame rate : 46.875 FPS (1024 SPF)
Compression mode : Lossy
Delay relative to video : 13 ms
Language : English

    



    FFmpeg does create a MP4 video which seems to be good ; the Media Info is here :

    



    General
Complete name : P :\Game Video.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso2/avc1/mp41)
File size : 7.44 GiB
Duration : 54 min 43 s
Overall bit rate mode : Variable
Overall bit rate : 19.5 Mb/s
Writing application : Lavf58.29.100

    



    Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L3.1
Format settings : CABAC / 1 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 1 frame
Format settings, GOP : M=1, N=15
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 54 min 43 s
Bit rate mode : Variable
Bit rate : 19.2 Mb/s
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 59.862 FPS
Minimum frame rate : 0.461 FPS
Maximum frame rate : 59.960 FPS
Original frame rate : 59.940 (60000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.348
Stream size : 7.35 GiB (99%)
Color range : Full
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
Codec configuration box : avcC

    



    Audio
ID : 2
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Codec ID : mp4a-40-2
Duration : 54 min 43 s
Bit rate mode : Constant
Bit rate : 221 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 48.0 kHz
Frame rate : 46.875 FPS (1024 SPF)
Compression mode : Lossy
Stream size : 86.5 MiB (1%)
Language : English
Default : Yes
Alternate group : 1

    



    I have not been able to figure out how to address the FFmpeg warnings and I am concerned that there is something wrong with the video that I will not find out until after I delete the source video. Any help is appreciated. here is the output from FFmpeg :

    



    P:\>ffmpeg -analyzeduration 10000M -probesize 10000000M -i "Game Video.ts" -acod
ec copy -vcodec copy "Game Video.mp4"
ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9.2.1 (GCC) 20200122
  configuration: --disable-static --enable-shared --enable-gpl --enable-version3
 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libas
s --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --ena
ble-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libth
eora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --
enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma
--enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo
-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom
--enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va
--enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenm
pt
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
[mpegts @ 00000000003b8fc0] start time for stream 1 is not set in estimate_timin
gs_from_pts
[mpegts @ 00000000003b8fc0] Could not find codec parameters for stream 1 (Video:
 mpeg2video ([2][0][0][0] / 0x0002), none(tv)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mpegts, from 'Game Video.ts':
  Duration: 00:54:43.40, start: 505.283956, bitrate: 23076 kb/s
  Program 2
    Stream #0:0[0x64]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuvj420p(pc,
 bt709, progressive), 1280x720 [SAR 96:96 DAR 16:9], 59.94 fps, 59.94 tbr, 90k t
bn, 119.88 tbc
    Stream #0:1[0x66]: Video: mpeg2video ([2][0][0][0] / 0x0002), none(tv), 90k
tbr, 90k tbn, 90k tbc
    Stream #0:2[0x67](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz,
stereo, fltp, 225 kb/s
    Stream #0:3[0x69](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz,
stereo, fltp, 224 kb/s
    Stream #0:4[0x3ec](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz,
 stereo, fltp, 225 kb/s
    Stream #0:5[0x3f0](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz,
 stereo, fltp, 224 kb/s
    Stream #0:6[0x3f7](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz,
 stereo, fltp, 225 kb/s
    Stream #0:7[0x65](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz,
stereo, fltp, 225 kb/s
    Stream #0:8[0x3f3](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz,
 stereo, fltp, 225 kb/s
    Stream #0:9[0x3eb](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz,
 stereo, fltp, 225 kb/s
    Stream #0:10[0x3f5](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz
, stereo, fltp, 225 kb/s
    Stream #0:11[0x3ed](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz
, stereo, fltp, 225 kb/s
    Stream #0:12[0x3f1](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz
, stereo, fltp, 225 kb/s
    Stream #0:13[0x4e7](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz
, stereo, fltp, 225 kb/s
Output #0, mp4, to 'Game Video.mp4':
  Metadata:
    encoder         : Lavf58.29.100
    Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt709, pro
gressive), 1280x720 [SAR 96:96 DAR 16:9], q=2-31, 59.94 fps, 59.94 tbr, 90k tbn,
 90k tbc
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, flt
p, 225 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:2 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 3067 fps=0.0 q=-1.0 size=  111616kB time=00:00:51.16 bitrate=17871.9kbits
frame= 5766 fps=5766 q=-1.0 size=  220160kB time=00:01:36.19 bitrate=18748.6kbit
frame= 8478 fps=5652 q=-1.0 size=  330496kB time=00:02:21.42 bitrate=19143.9kbit
frame=11166 fps=5583 q=-1.0 size=  438272kB time=00:03:06.28 bitrate=19273.1kbit
frame=13962 fps=5254 q=-1.0 size=  549632kB time=00:03:52.94 bitrate=19329.1kbit
frame=16771 fps=5312 q=-1.0 size=  662784kB time=00:04:39.79 bitrate=19405.7kbit
frame=19591 fps=5357 q=-1.0 size=  775424kB time=00:05:26.85 bitrate=19434.7kbit
frame=22357 fps=5378 q=-1.0 size=  887808kB time=00:06:12.99 bitrate=19498.6kbit
frame=24205 fps=5197 q=-1.0 size=  963584kB time=00:06:43.80 bitrate=19548.3kbit
frame=26914 fps=5219 q=-1.0 size= 1073152kB time=00:07:29.02 bitrate=19578.4kbit
frame=28873 fps=5104 q=-1.0 size= 1149696kB time=00:08:01.71 bitrate=19551.8kbit
frame=31566 fps=5127 q=-1.0 size= 1256704kB time=00:08:46.63 bitrate=19548.3kbit
frame=33579 fps=5022 q=-1.0 size= 1336832kB time=00:09:20.21 bitrate=19548.3kbit
frame=36292 fps=5050 q=-1.0 size= 1444096kB time=00:10:05.46 bitrate=19538.7kbit
frame=38205 fps=4970 q=-1.0 size= 1519872kB time=00:10:37.40 bitrate=19533.7kbit
frame=41030 fps=5012 q=-1.0 size= 1631488kB time=00:11:24.52 bitrate=19524.6kbit
frame=43471 fps=4947 q=-1.0 size= 1729280kB time=00:12:05.25 bitrate=19532.9kbit
frame=46199 fps=4974 q=-1.0 size= 1838080kB time=00:12:50.75 bitrate=19536.1kbit
frame=48026 fps=4907 q=-1.0 size= 1909760kB time=00:13:21.24 bitrate=19525.6kbit
frame=50849 fps=4943 q=-1.0 size= 2022144kB time=00:14:08.34 bitrate=19526.8kbit
frame=53324 fps=4909 q=-1.0 size= 2120960kB time=00:14:49.64 bitrate=19530.2kbit
frame=56043 fps=4933 q=-1.0 size= 2231552kB time=00:15:34.99 bitrate=19551.8kbit
frame=58032 fps=4892 q=-1.0 size= 2316288kB time=00:16:08.15 bitrate=19599.2kbit
frame=60918 fps=4928 q=-1.0 size= 2436608kB time=00:16:56.31 bitrate=19640.2kbit
frame=62869 fps=4878 q=-1.0 size= 2516480kB time=00:17:28.85 bitrate=19654.8kbit
frame=65418 fps=4886 q=-1.0 size= 2622464kB time=00:18:11.39 bitrate=19684.3kbit
frame=67200 fps=4839 q=-1.0 size= 2696960kB time=00:18:41.12 bitrate=19706.5kbit
frame=69648 fps=4841 q=-1.0 size= 2799360kB time=00:19:22.17 bitrate=19732.3kbit
frame=72165 fps=4802 q=-1.0 size= 2908160kB time=00:20:04.20 bitrate=19783.8kbit
frame=74787 fps=4816 q=-1.0 size= 3016704kB time=00:20:47.93 bitrate=19803.0kbit
frame=76580 fps=4775 q=-1.0 size= 3090432kB time=00:21:19.98 bitrate=19779.1kbit
frame=78741 fps=4761 q=-1.0 size= 3182080kB time=00:21:57.86 bitrate=19780.2kbit
frame=81470 fps=4781 q=-1.0 size= 3295232kB time=00:22:43.39 bitrate=19799.6kbit
frame=84198 fps=4801 q=-1.0 size= 3409664kB time=00:23:28.87 bitrate=19825.7kbit
frame=86826 fps=4813 q=-1.0 size= 3519744kB time=00:24:12.75 bitrate=19847.6kbit
frame=89508 fps=4828 q=-1.0 size= 3626752kB time=00:24:57.49 bitrate=19840.1kbit
frame=91254 fps=4793 q=-1.0 size= 3699456kB time=00:25:26.61 bitrate=19851.8kbit
frame=94034 fps=4813 q=-1.0 size= 3817472kB time=00:26:12.99 bitrate=19881.1kbit
frame=96349 fps=4808 q=-1.0 size= 3911168kB time=00:26:51.62 bitrate=19880.7kbit
frame=98600 fps=4801 q=-1.0 size= 4004864kB time=00:27:29.17 bitrate=19893.5kbit
frame=100838 fps=4793 q=-1.0 size= 4098048kB time=00:28:06.48 bitrate=19906.0kbi
frame=103620 fps=4811 q=-1.0 size= 4206848kB time=00:28:52.92 bitrate=19886.9kbi
frame=105687 fps=4795 q=-1.0 size= 4292608kB time=00:29:27.40 bitrate=19896.4kbi
frame=107646 fps=4776 q=-1.0 size= 4374016kB time=00:30:00.10 bitrate=19905.4kbi
frame=110196 fps=4752 q=-1.0 size= 4482560kB time=00:30:42.66 bitrate=19928.2kbi
frame=112831 fps=4763 q=-1.0 size= 4592896kB time=00:31:26.61 bitrate=19943.1kbi
frame=114561 fps=4736 q=-1.0 size= 4667648kB time=00:31:55.47 bitrate=19962.3kbi
frame=116471 fps=4714 q=-1.0 size= 4744960kB time=00:32:27.34 bitrate=19960.8kbi
frame=119043 fps=4723 q=-1.0 size= 4850432kB time=00:33:10.25 bitrate=19964.7kbi
frame=120907 fps=4704 q=-1.0 size= 4930816kB time=00:33:41.35 bitrate=19983.2kbi
frame=122932 fps=4691 q=-1.0 size= 5012992kB time=00:34:15.10 bitrate=19982.6kbi
frame=125679 fps=4706 q=-1.0 size= 5123584kB time=00:35:00.94 bitrate=19977.8kbi
frame=127629 fps=4691 q=-1.0 size= 5205760kB time=00:35:33.48 bitrate=19988.7kbi
frame=129623 fps=4679 q=-1.0 size= 5284864kB time=00:36:06.76 bitrate=19980.8kbi
frame=132378 fps=4693 q=-1.0 size= 5394432kB time=00:36:52.71 bitrate=19971.5kbi
frame=134255 fps=4677 q=-1.0 size= 5469440kB time=00:37:24.05 bitrate=19966.4kbi
frame=136291 fps=4667 q=-1.0 size= 5549312kB time=00:37:58.03 bitrate=19955.7kbi
frame=139035 fps=4680 q=-1.0 size= 5658368kB time=00:38:43.79 bitrate=19947.2kbi
frame=140864 fps=4663 q=-1.0 size= 5730560kB time=00:39:14.30 bitrate=19939.9kbi
frame=142685 fps=4647 q=-1.0 size= 5801984kB time=00:39:44.68 bitrate=19931.3kbi
frame=145415 fps=4660 q=-1.0 size= 5910528kB time=00:40:30.25 bitrate=19923.4kbi
frame=147296 fps=4646 q=-1.0 size= 5984000kB time=00:41:01.61 bitrate=19914.1kbi
frame=149243 fps=4634 q=-1.0 size= 6060032kB time=00:41:34.10 bitrate=19904.4kbi
frame=151934 fps=4645 q=-1.0 size= 6164992kB time=00:42:18.99 bitrate=19891.2kbi
frame=153880 fps=4634 q=-1.0 size= 6241280kB time=00:42:51.48 bitrate=19882.9kbi
frame=155799 fps=4622 q=-1.0 size= 6316032kB time=00:43:23.50 bitrate=19873.6kbi
frame=158502 fps=4633 q=-1.0 size= 6426112kB time=00:44:08.60 bitrate=19875.7kbi
frame=160503 fps=4624 q=-1.0 size= 6505984kB time=00:44:41.98 bitrate=19872.2kbi
frame=162396 fps=4612 q=-1.0 size= 6584832kB time=00:45:13.58 bitrate=19878.9kbi
frame=165264 fps=4628 q=-1.0 size= 6705920kB time=00:46:01.43 bitrate=19893.6kbi
frame=167267 fps=4619 q=-1.0 size= 6788608kB time=00:46:34.84 bitrate=19898.2kbi
frame=169281 fps=4611 q=-1.0 size= 6873600kB time=00:47:08.42 bitrate=19908.1kbi
frame=171831 fps=4607 q=-1.0 size= 6972160kB time=00:47:50.95 bitrate=19894.4kbi
frame=174586 fps=4619 q=-1.0 size= 7080192kB time=00:48:36.95 bitrate=19884.1kbi
frame=176481 fps=4608 q=-1.0 size= 7156736kB time=00:49:08.54 bitrate=19883.7kbi
frame=178470 fps=4599 q=-1.0 size= 7234560kB time=00:49:41.74 bitrate=19876.1kbi
frame=181282 fps=4612 q=-1.0 size= 7344128kB time=00:50:28.65 bitrate=19864.6kbi
frame=183059 fps=4598 q=-1.0 size= 7414784kB time=00:50:58.33 bitrate=19861.1kbi
frame=185151 fps=4588 q=-1.0 size= 7496960kB time=00:51:33.23 bitrate=19854.7kbi
frame=188046 fps=4603 q=-1.0 size= 7610368kB time=00:52:21.50 bitrate=19845.3kbi
frame=189885 fps=4591 q=-1.0 size= 7685888kB time=00:52:52.20 bitrate=19848.3kbi
frame=193431 fps=4621 q=-1.0 size= 7761408kB time=00:53:51.34 bitrate=19676.5kbi
frame=196550 fps=4669 q=-1.0 Lsize= 7799116kB time=00:54:43.37 bitrate=19458.7kb
its/s speed=  78x
video:7704206kB audio:89623kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.067837%


    



    Do I need to tell FFmpeg more information about the source file which I have seen suggested but I have been unable to implement. Again all Help is appreciated

    


  • Ode to the Gravis Ultrasound

    1er août 2011, par Multimedia Mike — General

    WARNING : This post is a bunch of nostalgia. Feel free to follow along if you recall the DOS days of the early-mid 1990s.

    I finally let go of my Gravis Ultrasound MAX sound card a little while ago. It felt like the end of an era for me, even though I had scarcely used the card in recent memory.



    The Beginning
    What is the Gravis Ultrasound ? Only the finest PC sound card from the classic DOS days. Back in the day (very early 1990s), most consumer PC sound cards were Yamaha OPL FM synthesizers paired with a basic digital to analog converter (DAC). Gravis, a company known for game controllers, dared to break with the dominant paradigm of Sound Blaster clones and create a sound card that had 32 digital channels.

    I heard about the GUS sometime in 1992 through one of the dominant online services at the time, Prodigy. Through the message boards, I learned of a promotion with Electronic Arts in which customers could pre-order a GUS at a certain discount along with 2 EA games from a selected catalog (with progressive discounts when ordering more games from the list). I know I got the DOS version of PowerMonger ; I think the other was Night Shift, though that doesn’t seem to be an EA title.

    Anyway, 1992 saw many maddening delays of the GUS hardware. Finally, reports of GUS shipments began to trickle into the Prodigy message forums. Then one day in November, 1992, mine arrived. Into the 286 machine it went and a valiant attempt at software installation was made. A friend and I fought with the software late into the evening, trying to make this thing work reasonably. I remember grabbing a pair of old headphones sitting near the computer that were used for an ancient (even for the time) portable radio. That was the only means of sound reproduction we had available at that moment. And it still sounded incredible.

    After graduating to progressively superior headphones, I would later return to that original pair only to feel my ears were being physically assaulted. Strange, they sounded fine that first night I was trying to make the GUS work. I guess this was my first understanding that the degree to which one is a snobby audiophile is all a matter of hard-earned experience.

    Technology
    The GUS was powered by something called a GF1 which was supposed to use a technology called wavetable synthesis. In the early days, I thought (and I wasn’t alone in this) that this meant that the GF1 chip had a bunch of digitized instrument samples stored in the ASIC. That wasn’t it.

    However, it did feature 32 digital channels at a time when most PC audio cards had 2 (plus that Yamaha FM synthesizer). There was some hemming and hawing about how the original GUS couldn’t drive all 32 channels at a full 44.1 kHz ("CD quality") playback rate. It’s true— if 14 channels were enabled, all could be played at 44.1 kHz. Enabling more channels started progressive degradation and with all 32 channels, each was only playing at around 19 kHz. Still, from my emerging game programmer perspective, that allowed for 8-channel tracker music and 6 channels of sound effects, all at the vaunted CD level of quality.

    Games and Compatibility
    The primary reason to have a discrete sound card was for entertainment applications — ahem, games. GUS support was pretty sketchy out of the gate (ostensibly a major reason for the card’s delay). While many sound cards offered Sound Blaster emulation by basically having the same hardware as Sound Blaster cards, the GUS took a software route towards emulating the SB. To do this required a program called the Sound Blaster Operating System, or SBOS.

    Oh, how awesome it was to hear the program exclaim "SBOS installed !" And how harshly it grated on your nerves after the 200th time hearing it due to so many reboots and fiddling with options to make your games work. Also, I’ve always wondered if there’s something special about sampling an ’s’ sound — does it strain the sampling frequency range ? Perhaps the phrase was sampled at too low a bitrate because the ’s’ sounds didn’t come through very clearly, which is something you notice after hundreds of iterations when there are 3 ’s’ sounds in the phrase.

    Fortunately, SBOS became less relevant with the advent of Mega-Em, a separate emulator which intercepted calls to Roland MIDI systems and routed them to the very capable GUS. Roland-supporting games sounded beautiful.

    Eventually, more and more DOS games were released with native Gravis support, sometimes with the help of The Miles Sound System (from our friends at Rad Game Tools — you know, the people behind Smacker and Bink). The library changelog is quite the trip down PC memory lane.

    An important area where the GUS shined brightly was that of demos and music trackers. The emerging PC demo scene embraced the powerful GUS (aided, no doubt, by Gravis’ sponsorship of the community) and the coolest computer art and music of the time natively supported the card.

    Programming
    At this point in my life, I was a budding programmer in high school and was fairly intent on programming video games. So far, I had figured out how to make a few blips using a borrowed Sound Blaster card. I went to great lengths to learn how to program the Gravis Ultrasound.

    Oh you kids today, with your easy access to information at the tips of your fingers thanks to Google and the broader internet. I had to track down whatever information I could find through a combination of Prodigy message boards and local dialup BBSes and FidoNet message bases. Gravis was initially tight-lipped about programming information for its powerful card, as was de rigueur of hardware companies (something that largely persists to this day). But Gravis eventually saw an opportunity to one-up encumbent Creative Labs and released a full SDK for the Ultrasound. I wanted the SDK badly.

    So it was early-mid 1993. Gravis released an SDK. I heard that it was available on their support BBS. Their BBS with a long distance phone number. If memory serves, the SDK was only in the neighborhood of 1.5 Mbytes. That takes a long time to transfer via a 2400 baud modem at a time when long distance phone charges were still a thing and not insubstantial.

    Luckily, they also put the SDK on something called an ’FTP site’. Fortunately, about this time, I had the opportunity to get some internet access via the local university.

    Indeed, my entire motivation for initially wanting to get on the internet was to obtain special programming information. Is that nerdy enough for you ?

    I see that the GUS SDK is still available via the Gravis FTP site. The file GUSDK222.ZIP is dated 1998 and is less than a megabyte.

    Next Generation : CD Support
    So I had my original GUS by the end of 1992. That was just the first iteration of the Gravis Ultrasound. The next generation was the GUS MAX. When I was ready to get into the CD-ROM era, this was what I wanted in my computer. This is because the GUS MAX had CD-ROM support. This is odd to think about now when all optical drives have SATA interfaces and (P)ATA interfaces before that— what did CD-ROM compatibility mean back then ? I wasn’t quite sure. But in early 1995, I headed over to Computer City (R.I.P.) and bought a new GUS MAX and Sony double-speed CD-ROM drive to install in the family’s PC.



    About the "CD-ROM compatibility" : It seems that there were numerous competing interfaces in the early days of CD-ROM technology. The GUS MAX simply integrated 3 different CD-ROM controllers onto the audio card. This was superfluous to me since the Sony drive came with an appropriate controller card anyway, though I didn’t figure out that the extra controller card was unnecessary until after I installed it. No matter ; computers of the day were rife with expansion ports.



    The 3 different CD-ROM controllers on the GUS MAX

    Explaining The Difference
    It was difficult to explain the difference in quality to those who didn’t really care. Sometime during 1995, I picked up a quasi-promotional CD-ROM called "The Gravis Ultrasound Experience" from Babbage’s computer store (remember when that was a thing ?). As most PC software had been distributed on floppy discs up until this point, this CD-ROM was an embarrassment of riches. Tons of game demos, scene demos, tracker music, and all the latest GUS drivers and support software.

    Further, the CD-ROM had a number of red book CD audio tracks that illustrated the difference between Sound Blaster cards and the GUS. I remember loaning this to a tech-savvy coworker who disbelieved how awesome the GUS was. The coworker took it home, listened to it, and wholly agreed that the GUS audio sounded better than the SB audio in the comparison — and was thoroughly confused because she was hearing this audio emanating from her Sound Blaster. It was the difference between real-time and pre-rendered audio, I suppose, but I failed to convey that message. I imagine the same issue comes up even today regarding real-time video rendering vs., e.g., a pre-rendered HD cinematic posted on YouTube.

    Regrettably, I can’t find that CD-ROM anymore which leads me to believe that the coworker never gave it back. Too bad, because it was quite the treasure trove.

    Aftermath
    According to folklore I’ve heard, Gravis couldn’t keep up as the world changed to Windows and failed to deliver decent drivers. Indeed, I remember trying to keep my GUS in service under Windows 95 well into 1998 but eventually relented and installed some kind of more appropriate sound card that was better supported under Windows.

    Of course, audio output capability has been standard issue for any PC for at least 10 years and many people aren’t even aware that discrete sound cards still exist. Real-time audio rendering has become less essential as full musical tracks can be composed and compressed into PCM format and delivered with the near limitless space afforded by optical storage.

    A few years ago, it was easy to pick up old GUS cards on eBay for cheap. As of this writing, there are only a few and they’re pricy (but perhaps not selling). Maybe I was just viewing during the trough of no value a few years ago.

    Nowadays, of course, anyone interested in studying the old GUS or getting a nostalgia fix need only boot up the always-excellent DOSBox emulator which provides remarkable GUS emulation support.

  • Dreamcast Track Sizes

    1er mars 2015, par Multimedia Mike — Sega Dreamcast

    I’ve been playing around with Sega Dreamcast discs lately. Not playing the games on the DC discs, of course, just studying their structure. To review, the Sega Dreamcast game console used special optical discs named GD-ROMs, where the GD stands for “gigadisc”. They are capable of holding about 1 gigabyte of data.

    You know what’s weird about these discs ? Each one manages to actually store a gigabyte of data. Each disc has a CD portion and a GD portion. The CD portion occupies the first 45000 sectors and can be read in any standard CD drive. This area is divided between a brief data track and a brief (usually) audio track.

    The GD region starts at sector 45000. Sometimes, it’s just one humongous data track that consumes the entire GD region. More often, however, the data track is split between the first track and the last track in the region and there are 1 or more audio tracks in between. But the weird thing is, the GD region is always full. I made a study of it (click for a larger, interactive graph) :


    Dreamcast Track Sizes

    Some discs put special data or audio bonuses in the CD region for players to discover. But every disc manages to fill out the GD region. I checked up on a lot of those audio tracks that divide the GD data and they’re legitimate music tracks. So what’s the motivation ? Why would the data track be split in 2 pieces like that ?

    I eventually realized that I probably answered this question in this blog post from 4 years ago. The read speed from the outside of an optical disc is higher than the inside of the same disc. When I inspect the outer data tracks of some of these discs, sure enough, there seem to be timing-sensitive multimedia FMV files living on the outer stretches.

    One day, I’ll write a utility to take apart the split ISO-9660 filesystem offset from a weird sector.