Recherche avancée

Médias (1)

Mot : - Tags -/Rennes

Autres articles (32)

  • Les formats acceptés

    28 janvier 2010, par

    Les commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
    ffmpeg -codecs ffmpeg -formats
    Les format videos acceptés en entrée
    Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
    Les formats vidéos de sortie possibles
    Dans un premier temps on (...)

  • Ajouter notes et légendes aux images

    7 février 2011, par

    Pour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
    Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
    Modification lors de l’ajout d’un média
    Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)

  • La sauvegarde automatique de canaux SPIP

    1er avril 2010, par

    Dans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
    Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...)

Sur d’autres sites (7184)

  • 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
    
  • Custom Segmentation Guide : How it Works & Segments to Test

    13 novembre 2023, par Erin — Analytics Tips, Uncategorized

    Struggling to get the insights you’re looking for with premade reports and audience segments in your analytics ?

    Custom segmentation can help you better understand your customers, app users or website visitors, but only if you know what you’re doing.

    You can derive false insights with the wrong segments, leading your marketing campaigns or product development in the wrong direction.

    In this article, we’ll break down what custom segmentation is, useful custom segments to consider, how new privacy laws affect segmentation options and how to create these segments in an analytics platform.

    What is custom segmentation ?

    Custom segmentation is when you divide your audience (customers, users, website visitors) into bespoke segments of your own design, not premade segments designed by the analytics or marketing platform provider.

    To do this, you single out “custom segment input” — data points you will use to pinpoint certain users. For example, it could be everyone who has visited a certain page on your site.

    Illustration of how custom segmentation works

    Segmentation isn’t just useful for targeting marketing campaigns and also for analysing your customer data. Creating segments is a great way to dive deeper into your data beyond surface-level insights.

    You can explore how various factors impact engagement, conversion rates, and customer lifetime value. These insights can help guide your higher-level strategy, not just campaigns.

    How custom segments can help your business

    As the global business world clamours to become more “data-driven,” even smaller companies collect all sorts of data on visitors, users, and customers.

    However, inexperienced organisations often become “data hoarders” without meaningful insights. They have in-house servers full of data or gigabytes stored by Google Analytics and other third-party providers.

    Illustration of a company that only collects data

    One way to leverage this data is with standard customer segmentation models. This can help you get insights into your most valuable customer groups and other standard segments.

    Custom segments, in turn, can help you dive deeper. They help you unlock insights into the “why” of certain behaviours. They can help you segment customers and your audience to figure out :

    • Why and how someone became a loyal customer
    • How high-order-value customers interact with your site before purchases
    • Which behaviours indicate audience members are likely to convert
    • Which traffic sources drive the most valuable customers

    This specific insight’s power led Gartner to predict that 70% of companies will shift focus from “big data” to “small and wide” by 2025. The lateral detail is what helps inform your marketing strategy. 

    You don’t need the same volume of data if you’re analysing and segmenting it effectively.

    Custom segment inputs : 6 data points you can use to create valuable custom segments 

    To help you get started, here are six useful data points you can use as a basis to create segments — AKA customer segment inputs :

    Diagram of the different possible custom segment inputs

    Visits to certain pages

    A basic data point that’s great for custom segments is visits to certain pages. Create segments for popular middle-of-funnel pages and compare their engagement and conversion rates. 

    For example, if a user visits a case study page, you can compare their likelihood to convert vs. other visitors.

    This is a type of behavioural segmentation, but it is the easiest custom segment to set up in terms of analysis and marketing efforts.

    Visitors who perform certain actions

    The other important type of behavioural segment is visitors or users who take certain actions. Think of things like downloading a file, clicking a link, playing a video or scrolling a certain amount.

    For instance, you can create a segment of all visitors who have downloaded a white paper. This can help you explore, for example, what drives someone to download a white paper. You can look at the typical user journey and make it easier for them to access the white paper — especially if your sales reps indicate many inbound leads mention it as a key driver of their interest.

    User devices

    Device-based segmentation lets you compare engagement and conversion rates on mobile, desktop and tablets. You can also get insights into their usage patterns and potential issues with certain mobile elements.

    Mobile device users segment in Matomo Analytics

    This is one aspect of technographic segmentation, where you segment based on users’ hardware or software. You can also create segments based on browser software or even specific versions.

    Loyal or high-value customers

    The best way to get more loyal or high-value customers is to explore their journey in more detail. These types of segments can help you better understand your ideal customers and how they act on your site.

    You can then use this insight to alter your campaigns or how you communicate with your target audience.

    For example, you might notice that high-value customers tend to come from a certain source. You can then focus your marketing efforts on this source to reach more of your ideal customers.

    Visitor or customer source

    You need to track the results if you’re investing in marketing (like an influencer campaign or a sponsored post) outside platforms with their own analytics.

    Screenshot of the free Matomo tracking URL builder

    Before you can create a reliable segment, you need to make sure that you use campaign tracking parameters to reliably track the source. You can use our free campaign tracking URL builder for that.

    Demographic segments — location (country, state) and more

    Web analytics tools, such as Matomo, use visitors’ IP addresses to pinpoint their location more accurately by cross-referencing with a database of known and estimated IP locations. In addition, these tools can detect a visitor’s location through the language settings in their browser. 

    This can help create segments based on location or language. By exploring these trends, you can identify patterns in behaviour, tailor your content to specific audiences, and adapt your overall strategy to better meet the preferences and needs of your diverse visitor base.

    How new privacy laws affect segmentation options

    Over the past few years, new legislation regarding privacy and customer data has been passed globally. The most notable privacy laws are the GDPR in the EU, the CCPA in California and the VCDPA in Virginia.

    Illustration of the impact of new privacy regulations on analytics

    For most companies, it can save a lot of work and future headaches to choose a GDPR-compliant web analytics solution not only streamlines operations, saving considerable effort and preventing future headaches, but also ensures peace of mind by guaranteeing the collection of compliant and accurate data. This approach allows companies to maintain compliance with privacy regulations while remaining firmly committed to a data-driven strategy.

    Create your very own custom segments in Matomo (while ensuring compliance and data accuracy)

    Crafting precise marketing messages and optimising ROI is crucial, but it becomes challenging without the right tools, especially when it comes to maintaining accurate data.

    That’s where Matomo comes in. Our privacy-friendly web analytics platform is GDPR-compliant and ensures accurate data, empowering you to effortlessly create and analyse precise custom segments.

    If you want to improve your marketing campaigns while remaining GDPR-compliant, start your 21-day free trial of Matomo. No credit card required.

  • How to use audio frame after decode mp3 file using pyav, ffmpeg, python

    2 janvier 2021, par Long Tran Dai

    I am using using python with pyav, ffmpeg to decode mp3 in the memory. I know there are some other way to do it, like pipe ffmpeg command. However, I would like to explore pyav and ffmpeg API. So I have the following code. It works but the sound is very noisy, although hearable :

    


    import numpy as np&#xA;import av # to convert mp3 to wav using ffmpeg&#xA;import pyaudio # to play music&#xA;&#xA;mp3_path = &#x27;D:/MyProg/python/SauTimThiepHong.mp3&#x27;&#xA;&#xA;def decodeStream(mp3_path):&#xA;  # Run NOT OK&#xA;  &#xA;  container = av.open(mp3_path)&#xA;  stream = next(s for s in container.streams if s.type == &#x27;audio&#x27;)&#xA;  frame_count = 0&#xA;  data = bytearray()&#xA;  for packet in container.demux(stream):&#xA;    # <class>&#xA;    # We need to skip the "flushing" packets that `demux` generates.&#xA;    #if frame_count == 5000 : break         &#xA;    if packet.dts is None:&#xA;        continue&#xA;    for frame in packet.decode():   &#xA;        #&#xA;        # type(frame) : <class>&#xA;        #frame.samples = 1152 : 1152 diem du lieu : Number of audio samples (per channel)&#xA;        # moi frame co size = 1152 (diem) * 2 (channels) * 4 (bytes / diem) = 9216 bytes&#xA;        # 11021 frames&#xA;        #arr = frame.to_ndarray() # arr.nbytes = 9216&#xA;&#xA;        #channels = []  &#xA;        channels = frame.to_ndarray().astype("float16")&#xA;        #for plane in frame.planes:&#xA;            #channels.append(plane.to_bytes()) #plane has 4 bytes / sample, but audio has only 2 bytes&#xA;        #    channels.append(np.frombuffer(plane, dtype=np.single).astype("float16"))&#xA;            #channels.append(np.frombuffer(plane, dtype=np.single)) # kieu np.single co 4 bytes&#xA;        if not frame.is_corrupt:&#xA;            #data.extend(np.frombuffer(frame.planes[0], dtype=np.single).astype("float16")) # 1 channel: noisy&#xA;            # type(planes) : <class>&#xA;            frame_count &#x2B;= 1&#xA;            #print( &#x27;>>>> %04d&#x27; % frame_count, frame)   &#xA;            #if frame_count == 5000 : break     &#xA;            # mix channels:&#xA;            for i in range(frame.samples):                &#xA;                for ch in channels: # dec_ctx->channels&#xA;                    data.extend(ch[i]) #noisy&#xA;                    #fwrite(frame->data[ch] &#x2B; data_size*i, 1, data_size, outfile)&#xA;  return bytes(data)&#xA;</class></class></class>

    &#xA;

    I use pipe ffmpeg to get decoded data to compare and find they are different :

    &#xA;

    def RunFFMPEG(mp3_path, target_fs = "44100"):&#xA;    # Run OK&#xA;    import subprocess&#xA;    # init command&#xA;    ffmpeg_command = ["ffmpeg", "-i", mp3_path,&#xA;                   "-ab", "128k", "-acodec", "pcm_s16le", "-ac", "0", "-ar", target_fs, "-map",&#xA;                   "0:a", "-map_metadata", "-1", "-sn", "-vn", "-y",&#xA;                   "-f", "wav", "pipe:1"]&#xA;    # excute ffmpeg command&#xA;    pipe = subprocess.run(ffmpeg_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, bufsize= 10**8)&#xA;    # debug&#xA;    #print(pipe.stdout, pipe.stderr)&#xA;    # read signal as numpy array and assign sampling rate&#xA;    #audio_np = np.frombuffer(buffer=pipe.stdout, dtype=np.uint16, offset=44)&#xA;    #audio_np = np.frombuffer(buffer=pipe.stdout, dtype=np.uint16)&#xA;    #sig, fs  = audio_np, target_fs&#xA;    #return audio_np&#xA;    return pipe.stdout[78:]     &#xA;

    &#xA;

    Then I use pyaudio to play data and find it very noisy

    &#xA;

    p = pyaudio.PyAudio()&#xA;streamOut = p.open(format=pyaudio.paInt16, channels=2, rate= 44100, output=True)&#xA;#streamOut = p.open(format=pyaudio.paInt16, channels=1, rate= 44100, output=True)&#xA;&#xA;mydata = decodeStream(mp3_path)&#xA;print("bytes of mydata = ", len(mydata))&#xA;#print("bytes of mydata = ", mydata.nbytes)&#xA;&#xA;ffMpegdata = RunFFMPEG(mp3_path)&#xA;print("bytes of ffMpegdata = ", len(ffMpegdata)) &#xA;#print("bytes of ffMpegdata = ", ffMpegdata.nbytes)&#xA;&#xA;minlen = min(len(mydata), len(ffMpegdata))&#xA;print("mydata == ffMpegdata", mydata[:minlen] == ffMpegdata[:minlen]) # ffMpegdata.tobytes()[:minlen] )&#xA;&#xA;#bytes of mydata =  50784768&#xA;#bytes of ffMpegdata =  50784768&#xA;#mydata == ffMpegdata False&#xA;&#xA;streamOut.write(mydata)&#xA;streamOut.write(ffMpegdata)&#xA;streamOut.stop_stream()&#xA;streamOut.close()&#xA;p.terminate()&#xA;

    &#xA;

    Please help me to understand decoded frame of pyav api (after for frame in packet.decode() :). Should it be processed more ? or I have some error ?

    &#xA;

    It makes me crazy for 3 days. I could not guess where to go.

    &#xA;

    Thank you very much.

    &#xA;