Recherche avancée

Médias (0)

Mot : - Tags -/xml-rpc

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (66)

  • Problèmes fréquents

    10 mars 2010, par

    PHP et safe_mode activé
    Une des principales sources de problèmes relève de la configuration de PHP et notamment de l’activation du safe_mode
    La solution consiterait à soit désactiver le safe_mode soit placer le script dans un répertoire accessible par apache pour le site

  • L’espace de configuration de MediaSPIP

    29 novembre 2010, par

    L’espace de configuration de MediaSPIP est réservé aux administrateurs. Un lien de menu "administrer" est généralement affiché en haut de la page [1].
    Il permet de configurer finement votre site.
    La navigation de cet espace de configuration est divisé en trois parties : la configuration générale du site qui permet notamment de modifier : les informations principales concernant le site (...)

  • Les statuts des instances de mutualisation

    13 mars 2010, par

    Pour des raisons de compatibilité générale du plugin de gestion de mutualisations avec les fonctions originales de SPIP, les statuts des instances sont les mêmes que pour tout autre objets (articles...), seuls leurs noms dans l’interface change quelque peu.
    Les différents statuts possibles sont : prepa (demandé) qui correspond à une instance demandée par un utilisateur. Si le site a déjà été créé par le passé, il est passé en mode désactivé. publie (validé) qui correspond à une instance validée par un (...)

Sur d’autres sites (9388)

  • Including FFmpeg.framework Into My IOS App

    28 mars, par Alpi

    I'm trying to manually integrate ffmpegkit.framework into my Expo Bare Workflow iOS app (built with React Native + native modules via Xcode) because the ffmpegkit will be deprecated and the binaries will be deleted.

    


    So far

    


      

    • I've downloaded the latest LTS release of FFmpegkit from here.
    • 


    • I've created 3 files : FFmpegModule.m , FFmpegModule.swift and SoundBud-Bridging-Header.
    • 


    • Added the frameworks to my projectDir/ios manually, which shows in my XCode under projectDir/Frameworks
    • 


    • Added all the frameworks into "Frameworks, Libraries and Embedded Content" and make them "Embed and Sign"
    • 


    • As Framework Search Path in Project Settings, I've set it to "$(PROJECT_DIR)" and recursive
    • 


    • In "Build Phases" I've added all the frameworks under "Embed Frameworks",set the destination to "Frameworks" and checked "Code Sign on Copy" to all of them and unchecked "Copy Only When Installing"
    • 


    • Also under "Link Binary With Libraries" I've added all the frameworks and marked them "Required"
    • 


    


    Here are the errors I'm getting :

    


      

    • The framework is not recognized by Swift (No such module 'ffmpegkit')
    • 


    • A build cycle error : Cycle inside SoundBud ; building could produce unreliable results.
Target 'SoundBud' has copy command from '.../Frameworks/ffmpegkit.framework' ...
    • 


    


    Below you can see my swift file and the ffmpegkit module file :
Swift :

    


    import Foundation
import ffmpegkit
import React

@objc(FFmpegModule)
class FFmpegModule: NSObject, RCTBridgeModule {

static func moduleName() -> String {
return "FFmpegModule"
}

@objc
func runCommand(_ command: String, resolver resolve: @escaping RCTPromiseResolveBlock, 
rejecter reject: @escaping RCTPromiseRejectBlock) {
FFmpegKit.executeAsync(command) { session in
  let returnCode = session?.getReturnCode()
  resolve(returnCode?.getValue())
}
}

@objc
static func requiresMainQueueSetup() -> Bool {
return false
}
}


    


    and the module :

    


    framework module ffmpegkit {

header "AbstractSession.h"
header "ArchDetect.h"
header "AtomicLong.h"
header "Chapter.h"
header "FFmpegKit.h"
header "FFmpegKitConfig.h"
header "FFmpegSession.h"
header "FFmpegSessionCompleteCallback.h"
header "FFprobeKit.h"
header "FFprobeSession.h"
header "FFprobeSessionCompleteCallback.h"
header "Level.h"
header "Log.h"
header "LogCallback.h"
header "LogRedirectionStrategy.h"
header "MediaInformation.h"
header "MediaInformationJsonParser.h"
header "MediaInformationSession.h"
header "MediaInformationSessionCompleteCallback.h"
header "Packages.h"
header "ReturnCode.h"
header "Session.h"
header "SessionState.h"
header "Statistics.h"
header "StatisticsCallback.h"
header "StreamInformation.h"
header "ffmpegkit_exception.h"

export *
}


    


    I can provide you with more info if you need it. I've been trying non stop for 7 days and it's driving me crazy. I would appreciate any help greatly

    


  • Diamond Rio Artifacts

    30 août 2012, par Multimedia Mike — Multimedia History

    Remember the Diamond Rio PMP300 ? It’s credited with being the very first portable MP3 player, released all the way back in 1998 (I say ‘credited’ because I visited an audio museum once which exhibited a Toshiba MP3 player from 1997). I recently rescued a pristine set of Rio artifacts from a recycle pile.



    I wondered if I should scan the manual for posterity. However, a Google search indicates that a proper PDF (loaded with pleas to not illegally copy music) isn’t very difficult to come by. Here are the other items that came with the unit :



    Click for larger image

    Ah, more memories (of dialup internet) : A tie-in with another Diamond product, this time a modem which claims to enable the user to download songs at up to 112 kilobits per second. I wonder if that was really possible. I remember that 56k modems were a stretch and 33.6k was the best that most users could hope for.

    There is also a separate piece of paper that advises the buyer that the parallel port adapter might look a bit different than what is seen in the printed copy. Imagine the age of downloading to your MP3 player via parallel port while pulling down new songs via dialup internet.

    The artifacts also included not one, but two CD-ROMs :



    Click for larger image

    One is a driver and software disc, so no big surprise there. The other has a selection of MP3 files for your shiny new MP3 player. I’m wondering if these should be proactively preserved. I was going to process the files’ metadata and publish it here, for the benefit of search engines. However, while metadata is present, the files don’t conform to any metadata format that FFmpeg/Libav recognize. The files mention Brava Software Inc. in their metadata sections. Still, individual filenames at the end of this post.

    Leftovers :
    A few other miscellaneous multimedia acquisitions :



    I still want to study all of these old multimedia creation programs in depth some day. Theatrix Hollywood is a creative writing game, Wikipedia alleges (I’m a bit rigid with my exact definition of what constitutes a game). Here is an example movie output from this software. Meanwhile, the Mad Dog Multimedia CD-ROM apparently came packaged with a 56X CD-ROM drive (roughly the pinnacle of CD-ROM speeds). I found it has some version of Sonic Foundry’s ACID software, thus making good on the “applications” claim on the CD-ROM copy.

    Diamond Rio MP3 Sampler
    These are the names of the MP3 files found on the Diamond Rio MP3 sampler for the benefit of search engines.

    13_days.mp3
    albert_einstein_dreams.mp3
    a_man_of_many_colours.mp3
    anything_for_love.mp3
    a_secret_place.mp3
    bake_sale.mp3
    bigger_than_the_both_of_us.mp3
    boogie_beat.mp3
    bring_it_on.mp3
    buskersoundcheck_hippo.mp3
    charm.mp3
    chemical_disturbance.mp3
    coastin.mp3
    credit_is_due.mp3
    dance_again.mp3
    destiny.mp3
    dig_a_little_deeper.mp3
    diplomat6_bigmouthshut.mp3
    dirty_littlemonster.mp3
    dirty.mp3
    drivin.mp3
    Eric_Clapton_Last_Train.mp3
    etude_in_c_sharp_minor_op_42_n.mp3
    everybody_here.mp3
    freedom_4_all.mp3
    grandpas_advice.mp3
    groove.mp3
    heartland.mp3
    he_loved_her_so.mp3
    highway_to_hell.mp3
    hit_the_ground_runnin.mp3
    i_feel_fine_today.mp3
    im_not_lost_im_exploring.mp3
    into_the_void.mp3
    its_alright.mp3
    i_will_be_there.mp3
    i_will_pass_this_way_again.mp3
    juiceboxwilly_hepcat.mp3
    just_an_illusion.mp3
    keepin_time_by_the_river.mp3
    king_of_the_brooklyn_delta.mp3
    lovermilou_ringingbell.mp3
    middle_aged_rock_and_rollers.mp3
    midnight_high.mp3
    mr_schwinn.mp3
    my_brilliant_masterpiece.mp3
    my_gallery.mp3
    on_the_river_road.mp3
    pouring_rain.mp3
    prayer.mp3
    rats_in_my_bedroom.mp3
    razor_serpent_and_the_dub_mix.mp3
    ruthbuzzy_pleasestophangin.mp3
    secret_love.mp3
    ships.mp3
    silence_the_thunder.mp3
    sleeping_beauty.mp3
    slow_burn.mp3
    standing_in_my_own_way.mp3
    take_no_prisoners.mp3
    takin_up_space.mp3
    Taylor_Dayne_Unstoppable.mp3
    the_laundromat_song.mp3
    the_old_dun_cow.mp3
    the_people_i_meet.mp3
    trip_trigger_avenue.mp3
    tru-luv.mp3
    unfortunate_man.mp3
    vertigo.mp3
    when_she_runs.mp3
    where_do_we_go_from_here.mp3
    words_of_earnest.mp3
    
  • Dynamic ffmpeg crop, scale & encoding code seems to break when the crop size changes

    28 avril 2024, par Blindy

    The following code works perfectly as long as I only move the crop rectangle, however as soon as I change its size I no longer get frames out of my filter (av_buffersink_get_frame returns -11). It's crazy, even after the size changes, if it eventually changes to the original size that frame will go through, then it will go back to no longer providing frames.

    


    Would anyone happen to know what I'm doing wrong ?

    


    My filter setup (note the crop & scale combination, it should (I think ?) scale whatever I crop to the output video size) :

    


    // buffer source -> buffer sink setup
auto args = std::format("video_size={}x{}:pix_fmt={}:time_base={}/{}:pixel_aspect={}/{}",
    inputCodecContext->width, inputCodecContext->height, (int)inputCodecContext->pix_fmt,
    inputCodecContext->pkt_timebase.num, inputCodecContext->pkt_timebase.den,
    inputCodecContext->sample_aspect_ratio.num, inputCodecContext->sample_aspect_ratio.den);

AVFilterContext* buffersrc_ctx = nullptr, * buffersink_ctx = nullptr;
check_av_result(avfilter_graph_create_filter(&buffersrc_ctx, bufferSource, "in",
    args.c_str(), nullptr, &*filterGraph));
check_av_result(avfilter_graph_create_filter(&buffersink_ctx, bufferSink, "out",
    nullptr, nullptr, &*filterGraph));
check_av_result(av_opt_set_bin(buffersink_ctx, "pix_fmts",
    (uint8_t*)&outputCodecContext->pix_fmt, sizeof(outputCodecContext->pix_fmt), AV_OPT_SEARCH_CHILDREN));

// filter command setup
auto filterSpec = std::format("crop,scale={}:{},setsar=1:1", outputCodecContext->width, outputCodecContext->height);

check_av_result(avfilter_graph_parse_ptr(&*filterGraph, filterSpec.c_str(), &filterInputs, &filterOutputs, nullptr));
check_av_result(avfilter_graph_config(&*filterGraph, nullptr));


    


    Frame cropping :

    


    check_av_result(avfilter_graph_send_command(&*filterGraph, "crop", "x", std::to_string(cropRectangle.CenterX() - cropRectangle.Width() / 2).c_str(), nullptr, 0, 0));
check_av_result(avfilter_graph_send_command(&*filterGraph, "crop", "y", std::to_string(cropRectangle.CenterY() - cropRectangle.Height() / 2).c_str(), nullptr, 0, 0));
check_av_result(avfilter_graph_send_command(&*filterGraph, "crop", "w", std::to_string(cropRectangle.Width()).c_str(), nullptr, 0, 0));
check_av_result(avfilter_graph_send_command(&*filterGraph, "crop", "h", std::to_string(cropRectangle.Height()).c_str(), nullptr, 0, 0));

// push the decoded frame into the filter graph
check_av_result(av_buffersrc_add_frame_flags(buffersrc_ctx, &*inputFrame, 0));

// pull filtered frames from the filter graph
while (1)
{
    ret = av_buffersink_get_frame(buffersink_ctx, &*filteredFrame);
    if (ret < 0)
    {
        // if no more frames, rewrite the code to 0 to show it as normal completion
        if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
            ret = 0;
        break;
    }

    // write the filtered frame to the output file 
    // [...]
}


    


    I also set the output video size before creating the file, and it is obeyed as expected :

    


    outputCodecContext->width = (int)output.PixelSize().Width;
outputCodecContext->height = (int)output.PixelSize().Height;