Recherche avancée

Médias (1)

Mot : - Tags -/Rennes

Autres articles (40)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • Taille des images et des logos définissables

    9 février 2011, par

    Dans beaucoup d’endroits du site, logos et images sont redimensionnées pour correspondre aux emplacements définis par les thèmes. L’ensemble des ces tailles pouvant changer d’un thème à un autre peuvent être définies directement dans le thème et éviter ainsi à l’utilisateur de devoir les configurer manuellement après avoir changé l’apparence de son site.
    Ces tailles d’images sont également disponibles dans la configuration spécifique de MediaSPIP Core. La taille maximale du logo du site en pixels, on permet (...)

  • Gestion de la ferme

    2 mars 2010, par

    La ferme est gérée dans son ensemble par des "super admins".
    Certains réglages peuvent être fais afin de réguler les besoins des différents canaux.
    Dans un premier temps il utilise le plugin "Gestion de mutualisation"

Sur d’autres sites (4928)

  • Re-solving My Search Engine Problem

    28 juillet 2012, par Multimedia Mike — General, swish-e

    14 years ago, I created a web database of 8-bit Nintendo Entertainment System games. To make it useful, I developed a very primitive search feature.

    A few months ago, I decided to create a web database of video game music. To make it useful, I knew it would need to have a search feature. I realized I needed to solve the exact same problem again.

    Requirements
    The last time I solved this problem, I came up with an excruciatingly naïve idea. Hey, it worked. I really didn’t want to deploy the same solution again because it felt so silly the first time. Surely there are many better ways to solve it now ? Many different workable software solutions that do all the hard work for me ?

    The first time I attacked this, it was 1998 and hosting resources were scarce. On my primary web host I was able to put static HTML pages, perhaps with server side includes. The web host also offered dynamic scripting capabilities via something called htmlscript (a.k.a. MIVA Script). I had a secondary web host in my ISP which allowed me to host conventional CGI scripts on a Unix host, so that’s where I hosted the search function (Perl CGI script accessing a key/value data store file).

    Nowadays, sky’s the limit. Any type of technology you want to deploy should be tractable. Still, a key requirement was that I didn’t want to pay for additional hosting resources for this silly little side project. That leaves me with options that my current shared web hosting plan allows, which includes such advanced features as PHP, Perl and Python scripts. I can also access MySQL.

    Candidates
    There are a lot of mature software packages out there which can index and search data and be plugged into a website. But a lot of them would be unworkable on my web hosting plan due to language or library package limitations. Further, a lot of them feel like overkill. At the most basic level, all I really want to do is map a series of video game titles to URLs in a website.

    Based on my research, Lucene seems to hold a fair amount of mindshare as an open source indexing and search solution. But I was unsure of my ability to run it on my hosting plan. I think MySQL does some kind of full text search, so I could have probably made a solution around that. Again, it just feels like way more power than I need for this project.

    I used Swish-e once about 3 years ago for a little project. I wasn’t confident of my ability to run that on my server either. It has a Perl API but it requires custom modules.

    My quest for a search solution grew deep enough that I started perusing a textbook on information retrieval techniques in preparation for possibly writing my own solution from scratch. However, in doing so, I figured out how I might subvert an existing solution to do what I want.

    Back to Swish-e
    Again, all I wanted to do was pull data out of a database and map that data to a URL in a website. Reading the Swish-e documentation, I learned that the software supports a mode specifically tailored for this. Rather than asking Swish-e to index a series of document files living on disk, you can specify a script for Swish-e to run and the script will generate what appears to be a set of phantom documents for Swish-e to index.

    When I ’add’ a game music file to the game music website, I have a scripts that scrape the metadata (game title, system, song titles, composers, company, copyright, the original file name on disk, even the ripper/dumper who extracted the chiptune in the first place) and store it all in an SQLite database. When it’s time to update the database, another script systematically generates a series of pseudo-documents that spell out the metadata for each game and prefix each document with a path name. Searching for a term in the index returns a lists of paths that contain the search term. Thus, it makes sense for that path to be a site URL.

    But what about a web script which can search this Swish-e index ? That’s when I noticed Swish-e’s C API and came up with a crazy idea : Write the CGI script directly in C. It feels like sheer madness (or at least the height of software insecurity) to write a CGI script directly in C in this day and age. But it works (with the help of cgic for input processing), just as long as I statically link the search script with libswish-e.a (and libz.a). The web host is an x86 machine, after all.

    I’m not proud of what I did here— I’m proud of how little I had to do here. The searching CGI script is all of about 30 lines of C code. The one annoyance I experienced while writing it is that I had to consult the Swish-e source code to learn how to get my search results (the "swishdocpath" key — or any other key — for SwishResultPropertyStr() is not documented). Also, the C program just does the simplest job possible, only querying the term in the index and returning the results in plaintext, in order of relevance, to the client-side JavaScript code which requested them. JavaScript gets the job of sorting and grouping the results for presentation.

    Tuning the Search
    Almost immediately, I noticed that the search engine could not find one of my favorite SNES games, U.N. Squadron. That’s because all of its associated metadata names Area 88, the game’s original title. Thus, I had to modify the metadata database to allow attaching somewhat free-form tags to games in order to compensate. In this case, an alias title would show up in the game’s pseudo-document.

    Roman numerals are still a thorn in my side, just as they were 14 years ago in my original iteration. I dealt with it back then by converting all numbers to Roman numerals during the index and searching processes. I’m not willing to do that for this case and I’m still looking for a good solution.

    Another annoying problem deals with Mega Man, a popular franchise. The proper spelling is 2 words but it’s common for people to mash it into one word, Megaman (see also : Spider-Man, Spiderman, Spider Man). The index doesn’t gracefully deal with that and I have some hacks in place to cope for the time being.

    Positive Results
    I’m pleased with the results so far, and so are the users I have heard from. I know one user expressed amazement that a search for Castlevania turned up Akumajou Densetsu, the Japanese version of Castlevania III : Dracula’s Curse. This didn’t surprise me because I manually added a hint for that mapping. (BTW, if you are a fan of Castlevania III, definitely check out the Akumajou Densetsu soundtrack which has an upgraded version of the same soundtrack using special audio channels.)

    I was a little more surprised when a user announced that searching for ’probotector’ correctly turned up Contra : Hard Corps. I looked into why this was. It turns out that the original chiptune filename was extremely descriptive : "Contra - Hard Corps [Probotector] (1994-08-08)(Konami)". The filenames themselves often carry a bunch of useful metadata which is why it’s important to index those as well.

    And of course, many rippers, dumpers, and taggers have labored for over a decade to lovingly tag these songs with as much composer information as possible, which all gets indexed. The search engine gets a lot of compliments for its ability to find many songs written by favorite composers.

  • Appending a list of movies MP4s causes the sound to be dropped or garbled at some point

    9 février 2020, par Marie

    Update I am able to reproduce the issue by concatenating 10 Hello.mp4 clips and see the audio drop out/garbled at about 5 seconds playback. This is via VLC latest 3.0.8 on Windows7 64bit. Window Player zero sound. Media Player Classic it plays fine all 10 audio or the word "Hello". The same movie when dragged onto Whatsapp the PC app plays OK but no sound if played from the Phone Whatsapp. Perhaps its my computer too slow in the production of this clip ??? I don’t know what to trust anymore.

    I copied the same ffmpeg.exe onto my kid’s Windows10 laptop and was able to produce the same behavior with sound dropping out with VLC however Windows10 media player is able to play the audio without a glitch.

    You can reproduce the same on your end with this batch file

    _HELLO_MP4s.CMD

    rem 2:07 AM 2/8/2020
    rem
    rem  
    SET EXE="S:\_BINS\FFmpeg 4.2.1 20200112\bin\ffmpeg.exe"

    SET ROOTPATH=.\

    SET OUT_FILE="%ROOTPATH%HELLOs.MP4"

    SET IN_FILES_LIST="%ROOTPATH%IN_FILES_LIST.TXT"
    ECHO file '%ROOTPATH%HELLO.mp4' > %IN_FILES_LIST%
    ECHO file '%ROOTPATH%HELLO.mp4' >> %IN_FILES_LIST%
    ECHO file '%ROOTPATH%HELLO.mp4' >> %IN_FILES_LIST%
    ECHO file '%ROOTPATH%HELLO.mp4' >> %IN_FILES_LIST%
    ECHO file '%ROOTPATH%HELLO.mp4' >> %IN_FILES_LIST%
    ECHO file '%ROOTPATH%HELLO.mp4' >> %IN_FILES_LIST%
    ECHO file '%ROOTPATH%HELLO.mp4' >> %IN_FILES_LIST%
    ECHO file '%ROOTPATH%HELLO.mp4' >> %IN_FILES_LIST%
    ECHO file '%ROOTPATH%HELLO.mp4' >> %IN_FILES_LIST%
    ECHO file '%ROOTPATH%HELLO.mp4' >> %IN_FILES_LIST%

    SET OPTIONS= -f concat -safe 0 -i  %IN_FILES_LIST%  -c copy -y  %OUT_FILE%

    SET INFO_FILE="INFO.TXT"

    %EXE% %OPTIONS%  1> %INFO_FILE% 2>&1

    ECHO ======================== >> %INFO_FILE%
    ECHO OUT_FILE=%OUT_FILE%  >> %INFO_FILE%
    ECHO EXE=%EXE%  >> %INFO_FILE%
    ECHO OPTIONS=%OPTIONS%  >> %INFO_FILE%
    ECHO ======================== >> %INFO_FILE%

    Original Post
    My process is in 3 steps
    Step 1) Corresponding to each bitmap I have 00.JPG ... NN.JPG I combine a list of "SOURCE" mp3 audio into a single audio mp3 to produce matching 00.MP3 ... NN.MP3

    I had glitch here where one my mp3 was not of the correct Sample Rate, however a kind soul in this forum helped me fix that.
    You can read the details here :

    When I append a silent audio (mp3) to an existing list of audio it garbles the final audio ?

    Step 2) combine each mp3 from previous with a the filename matching bitmap to produce a movie .MP4

    IOW,

    • 00.JPG + 00.MP3 >> 00.MP4
    • 01.JPG + 01.MP3 >> 01.MP4
    • and so on

    From this run of 24 subparts, I hand tested some of these movies against Whatsapp and they are accepted fine.
    However, the final MOVIE.MP4 is not.
    I will list below their info from ffprobe.

    Step 3) combine the list of movies from previous into a final MOVIE.MP4
    This is where I have been having random issues typically with audio, currently this audio drops at about 20s from start. Corresponding to roughly movies parts 04.mp4 to 07.mp4

    I play the videos via VLC but Windows Media Player has even worse playback.

    I am able to reproduce Step3 and thus MOVIE.MP4 with following batch file

    rem 10:33 PM 2/6/2020
    SET EXE="S:\_BINS\FFmpeg 4.2.1 20200112\bin\ffmpeg.exe"

    SET ROOTPATH=.\

    SET OUT_FILE="%ROOTPATH%MOVIE.MP4"

    SET IN_FILES_LIST="%ROOTPATH%IN_FILES_LIST.TXT"

    SET OPTIONS= -f concat -safe 0 -i  %IN_FILES_LIST%  -c copy -y  %OUT_FILE%

    SET INFO_FILE="INFO.TXT"

    %EXE% %OPTIONS%  1> %INFO_FILE% 2>&1

    rem PAUSE

    The content of IN_FILES_LIST.TXT

    file '00.mp4'
    file '01.mp4'
    file '02.mp4'
    ...
    file '23.mp4'
    file '24.mp4'

    (Step 2) uses the following :)
    enter image description here

    The following is ffprobe on the source audio MP3s (Step 1)

    MP3s_ORIGINAL.TXT
    ========================BEGIN
    [mp3 @ 0000000000513100] Estimating duration from bitrate, this may be inaccurate
    Input #0, mp3, from '.\PLAY\00.mp3':
     Duration: 00:00:03.36, start: 0.000000, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    [mp3 @ 00000000003f3180] Estimating duration from bitrate, this may be inaccurate
    Input #0, mp3, from '.\PLAY\01.mp3':
     Duration: 00:00:00.46, start: 0.000000, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    [mp3 @ 00000000004a3180] Estimating duration from bitrate, this may be inaccurate
    Input #0, mp3, from '.\PLAY\02.mp3':
     Duration: 00:00:00.58, start: 0.000000, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    [mp3 @ 0000000000623180] Estimating duration from bitrate, this may be inaccurate
    Input #0, mp3, from '.\PLAY\03.mp3':
     Duration: 00:00:00.84, start: 0.000000, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    [mp3 @ 00000000003a3180] Estimating duration from bitrate, this may be inaccurate
    Input #0, mp3, from '.\PLAY\04.mp3':
     Duration: 00:00:00.86, start: 0.000000, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    [mp3 @ 0000000000433180] Estimating duration from bitrate, this may be inaccurate
    Input #0, mp3, from '.\PLAY\05.mp3':
     Duration: 00:00:00.98, start: 0.000000, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    [mp3 @ 0000000000683180] Estimating duration from bitrate, this may be inaccurate
    Input #0, mp3, from '.\PLAY\06.mp3':
     Duration: 00:00:00.98, start: 0.000000, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    [mp3 @ 00000000004d3180] Estimating duration from bitrate, this may be inaccurate
    Input #0, mp3, from '.\PLAY\07.mp3':
     Duration: 00:00:00.98, start: 0.000000, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    [mp3 @ 00000000004c3180] Estimating duration from bitrate, this may be inaccurate
    Input #0, mp3, from '.\PLAY\08.mp3':
     Duration: 00:00:00.98, start: 0.000000, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    [mp3 @ 0000000000573180] Estimating duration from bitrate, this may be inaccurate
    Input #0, mp3, from '.\PLAY\09.mp3':
     Duration: 00:00:00.98, start: 0.000000, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    [mp3 @ 0000000000583180] Estimating duration from bitrate, this may be inaccurate
    Input #0, mp3, from '.\PLAY\10.mp3':
     Duration: 00:00:00.98, start: 0.000000, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    [mp3 @ 00000000005e3180] Estimating duration from bitrate, this may be inaccurate
    Input #0, mp3, from '.\PLAY\11.mp3':
     Duration: 00:00:00.98, start: 0.000000, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    [mp3 @ 0000000000553180] Estimating duration from bitrate, this may be inaccurate
    Input #0, mp3, from '.\PLAY\12.mp3':
     Duration: 00:00:00.98, start: 0.000000, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    [mp3 @ 0000000000563180] Estimating duration from bitrate, this may be inaccurate


    trimmed because SO limits post to 30000 chars

    The following is ffprobe on the MP3s concatenated with 2second Silence. All their Sample Rate 24K and Bit Rate 32k seems OK ?? (Also Step 1)

    MP3s_withSilenceAppended.TXT
    ========================BEGIN
    Input #0, mp3, from '00.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:05.42, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '01.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:02.52, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '02.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:02.64, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '03.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:02.90, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '04.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:02.93, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '05.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:03.05, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '06.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:03.05, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '07.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:03.05, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '08.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:03.05, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '09.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:03.05, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '10.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:03.05, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '11.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:03.05, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '12.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:03.05, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '13.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:05.81, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '14.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:02.93, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '15.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:02.66, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '16.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:02.66, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '17.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:02.66, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '18.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:02.83, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '19.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:06.50, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '20.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:03.05, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '21.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:03.05, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '22.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:03.14, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '23.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:06.12, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s
    Input #0, mp3, from '24.mp3':
     Metadata:
       encoder         : Lavf58.35.101
     Duration: 00:00:03.14, start: 0.046042, bitrate: 32 kb/s
       Stream #0:0: Audio: mp3, 24000 Hz, mono, fltp, 32 kb/s

    The following is ffmpeg info output during the production of final movie MOVIE.MP4
    (Step 3)

    ========================BEGIN
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\00.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:05.54, start: 0.000000, bitrate: 174 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 137 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\01.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:02.71, start: 0.000000, bitrate: 269 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 242 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\02.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:02.71, start: 0.000000, bitrate: 285 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 245 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\03.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:03.04, start: 0.000000, bitrate: 275 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 239 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\04.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:03.04, start: 0.000000, bitrate: 286 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 250 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\05.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:03.21, start: 0.000000, bitrate: 281 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 249 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\06.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:03.21, start: 0.000000, bitrate: 281 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 249 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\07.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:03.21, start: 0.000000, bitrate: 150 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 115 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\08.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:03.21, start: 0.000000, bitrate: 201 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 166 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\09.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:03.21, start: 0.000000, bitrate: 247 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 214 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\10.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:03.21, start: 0.000000, bitrate: 247 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 214 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\11.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:03.21, start: 0.000000, bitrate: 131 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 95 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\12.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:03.21, start: 0.000000, bitrate: 194 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 159 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\13.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:05.88, start: 0.000000, bitrate: 207 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 169 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\14.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:03.04, start: 0.000000, bitrate: 335 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 300 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\15.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:02.88, start: 0.000000, bitrate: 365 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 342 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\16.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:02.88, start: 0.000000, bitrate: 384 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 362 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\17.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:02.88, start: 0.000000, bitrate: 390 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 368 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\18.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:03.04, start: 0.000000, bitrate: 386 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 363 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\19.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:06.71, start: 0.000000, bitrate: 204 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 169 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\20.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:03.21, start: 0.000000, bitrate: 194 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 159 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\21.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:03.21, start: 0.000000, bitrate: 194 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 159 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\22.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:03.21, start: 0.000000, bitrate: 208 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 169 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\23.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:06.21, start: 0.000000, bitrate: 204 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 166 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\24.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:00:03.21, start: 0.000000, bitrate: 173 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 134 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 32 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '\VID\MOVIE.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.35.101
     Duration: 00:01:29.05, start: 0.000000, bitrate: 239 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 203 kb/s, 23.53 fps, 24 tbr, 24k tbn, 48 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 30 kb/s (default)
       Metadata:
         handler_name    : SoundHandler

    I have not been able yet to reproduce the issue with a smaller set of movies, in the meantime if you would to get a copy I would have to upload an archive to a link so you can have them on your side.

    Alternatively, if you would like me to provide additional info from these steps let me know what commands and I will be happy to provide.

    Thank you.

  • Long Overdue MediaWiki Upgrade

    5 février 2014, par Multimedia Mike — General

    What do I do ? What I do ? This library book is 42 years overdue !
    I admit that it’s mine, yet I can’t pay the fine,
    Should I turn it in or should I hide it again ?
    What do I do ? What do I do ?

    I internalized the forgoing paean to the perils of procrastination by Shel Silverstein in my formative years. It’s probably why I’ve never paid a single cent in late fees in my entire life.

    However, I have been woefully negligent as the steward of the MediaWiki software that drives the world famous MultimediaWiki, the internet’s central repository of obscure technical knowledge related to multimedia. It is currently running of version 1.6 software. The latest version is 1.22.

    The Story So Far
    According to my records, I first set up the wiki late in 2005. I don’t know which MediaWiki release I was using at the time. I probably conducted a few upgrades in the early days, but that went by the wayside perhaps in 2007. My web host stopped allowing shell access and the MediaWiki upgrade process pretty much requires running a PHP script from a command line. Upgrade time came around and I put off the project. Weeks turned into months turned into years until, according to some notes, the wiki abruptly stopped working in July, 2011. Suddenly, there were PHP errors about “Namespace” being a reserved word.

    While I finally laid out a plan to upgrade the wiki after all these years, I eventually found that the problem had been caused when my webhost upgraded from PHP 5.2 -> 5.3. I also learned of a small number of code changes that caused the problem to go away, thus kicking the can down the road once more.

    Then a new problem showed up last week. I think it might be related to a new version of PHP again. This time, a few other things on my site broke, and I learned that my webhost now allows me to select a PHP version to use (with the version then set to “auto”, which didn’t yield much information). Rolling back to an earlier version of PHP might have solved the problem easily.

    But NO ! I made the determination that this goes no further. I want this wiki upgraded.

    The Arduous Upgrade Path
    There are 2 general upgrade paths I can think of :

    1. Upgrade in place on the server
    2. Upgrade offline and put the site back on the server

    Approach #1 is problematic since I don’t have direct shell access, though I considered using something like PHP Shell. Approach #2 involves getting the entire set of wiki files and a backup of the MySQL tables. This is workable since I keep automated backups of these items anyway.

    In fairly short order, I was able to set up a working copy of the MultimediaWiki hosted on a local Linux machine. Now what’s the move ? The MediaWiki software I’m running is 1.6.10. The very latest, as of this upgrade project is 1.22.2. I suppose it’s way too much to hope that the software will upgrade cleanly from 1.6.x straight to 1.22.x, but I guess it’s worth a shot…

    HA ! No chance. Okay, next idea is to march through the various versions and upgrade each in turn. MediaWiki has all their historic releases online, all the way back to the 1.3 lineage. I decided that the latest of each lineage should upgrade cleanly from anything in the previous version of lineage. E.g., 1.6.10 should upgrade cleanly to 1.7.3 (last in the 1.7 series). This seemed to be a workable strategy. So I downloaded the latest of each series, unpacked, and copied all the wiki files over the working installation and ran ‘php update.php’ in the maintenance/ directory.

    The process is tedious and not without its obstacles. I consider this penance for my years of wiki neglect. First, I run into the “PHP Parse error : syntax error, unexpected T_NAMESPACE, expecting T_STRING” issue, the same that I saw years ago after the webhost transitioned from PHP 5.2 -> 5.3. I could solve this by editing assorted files and changing “Namespace” -> “MWNamespace” (which is what MediaWiki did by version 1.13). But I would prefer not to.

    Instead, I downloaded the source for PHP 5.2 and compiled it in a separate directory, then called ‘/path/to/php/5.2/bin/php update.php’. Problem solved.

    The next problem is that a bunch of the database update scripts are specifying “Type=InnoDB”. This isn’t supported by modern MySQL databases. Now, it’s “Engine=InnoDB”. A quick search & replace at the command line fixes this for 1.6.x… and 1.7.x… and 1.8 through 1.12. Finally, at 1.13, it was no longer necessary. As a bonus, at 1.13, I was able to test the installation since Namespace had been renamed to MWNamespace. I would later learn that the table type modifications probably could have been simplified in by changing “$wgDBmysql4 = true ;” to “$wgDBmysql5 = true ;” somewhere in LocalSettings.php.

    Command line upgrading worked smoothly up through 1.18 series when I got a new syntax error :

    <br />
    PHP Fatal error:  Call to a member function addMessages() on a non-object in /mnt/sdb1/archive/wiki/extensions/Cite.php on line 68<br />

    Best I could do was comment out that line. I hope that doesn’t break anything important.

    In the home stretch, the very last transition (1.21 -> 1.22) failed :

    PHP Fatal error :  Cannot redeclare wfProfileIn() (previously declared in 
    /mnt/sdb1/archive/wiki/includes/profiler/Profiler.php:33) in 
    /mnt/sdb1/archive/wiki/includes/ProfilerStub.php on line 25
    

    Apparently, this problem arises occasionally since 1.18. I found a way around it thanks to this page : Deleted the file StartProfiler.php. Who am I to argue ?

    Upon completing the transition to 1.22, the wiki doesn’t look correct– the pictures aren’t showing up. The solution was to fix the temporary directory via LocalSettings.php.

    Back To Production
    Okay, it all works again ! Locally, that is. How to get it back to the server ? My first idea was that, knowing that this upgrade process can succeed, try stepping through the upgrade process again, but tell the update.php scripts to access the database tables on multimedia.cx. This seemed to be working for awhile, even though the database update phase often took 4-5 minutes. However, the transition from 1.8.5 -> 1.9.6 took 75 minutes and then timed out. According to my notes, “This isn’t going to work.”

    The new process :

    1. Dump the database tables from the local database.
    2. Create a new database remotely (melanson_wiki_ng).
    3. Dump the database table into melanson_wiki_ng.
    4. Move the index.php file out of the wiki files directory temporarily (or rename).
    5. Modify the LocalSettings.php to talk to the new database.
    6. Perform a lftp mirror operation in order to send all the files up to the server.
    7. Send the index.php file and hope beyond hope that everything magically works.

    And that’s the story of how the updated MultimediaWiki came back online. Despite the database dump file being over 110 MB, it only tool MySQL 1m45s to transmit it all to the remote server (let’s hear it for the ‘–compress’ option). For comparison, inserting the tables back into a fresh local database took 1m07s.

    When the MultimediaWiki was first live again, it loaded, but ever so slowly. This is when I finally looked into optimization and found that I was lacking any caching. So as a bonus, the MultimediaWiki should be much faster now.

    Going Forward
    For all I know, I did everything described here in the hardest way possible. But at least I got it done. Unless I learn of a better process, future upgrades will probably look similar to this.

    Additionally, I should probably take some time to figure out what new features are part of the standard MediaWiki distribution nowadays.