Recherche avancée

Médias (1)

Mot : - Tags -/Christian Nold

Autres articles (103)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

Sur d’autres sites (16410)

  • Compressing videos from a smartphone

    21 septembre 2019, par fejesjoco

    I have a Nexus 6p with the stock camera. It’s set to record at 1080p, 30fps. Here’s a 5 second sample (11 MB).

    Videos from this phone come out at about 17 Mbps on average. I tried to compress it with ffmpeg with -c:v libx264 -crf 23 -preset veryslow, the result comes out at about 5.5 MB, which is about 9 Mbps.

    I think this bitrate is a bit too much. When I look at torrent file listings, I can see high quality videos at 3 GB in size on average, and if such a movie is 90 minutes long on average, that is about 4-5 Mbps which sounds okay.

    I’m wondering, why the big difference ? I can notice that my video is noisy/grainy (which is expected from a phone), and that might reduce compressibility. I tried a few ffmpeg filters, like hqdn3d and atadenoise, but the noise mostly remained (maybe I didn’t play with it enough). Then I figured, the video is also shaky (which is also expected), and that might reduce compressibility too (and even makes temporal noise filtering less effective). I tried to stabilize it with the deshake filter, but that didn’t help either.

    I know I could just limit the bandwidth to whatever I like, but there must be a reason why ffmpeg thinks it needs a high bandwidth to maintain a certain quality, and a lower bandwidth would just decrease the quality.

    Why do these videos have such a high bitrate ? What’s the best way to compress them more while keeping or even increasing their quality ?

  • Enable Quality Selector Control in Angular Using Video.js

    22 juillet, par Abhay Singh

    I am using Video.js in an Angular 19.1.3 application, with version 8.21.0 of Video.js. I have successfully set up an HLS stream using a master index.m3u8 file, and the player automatically switches to lower quality segments when the network is slow, and to higher quality when the network is good. This part works as expected.

    


    However, I would like to add a manual quality selection option to allow users to choose the video quality themselves. Despite trying several plugins (such as videojs-hls-quality-selector and videojs-contrib-quality-levels), I haven't been able to get it working.

    


    Can anyone guide me on how to implement this feature in Video.js, ensuring that the quality selector is available for manual selection ?

    


    Below is my Components code -

    


    import {AfterViewInit, Component} from '@angular/core';
import videojs from 'video.js';
import '@videojs/http-streaming';
import 'video.js/dist/video-js.css';

@Component({
  selector: 'app-home',
  imports: [],
  templateUrl: './home.component.html',
  styleUrl: './home.component.css'
})
export class HomeComponent implements AfterViewInit {
  
  ngAfterViewInit(): void {
    const player = videojs('my-video', {
      autoplay: false,
      controls: true,
      preload: 'auto',
      fluid: true,
      aspectRatio: '16:9',
    })
  
  }
}


    


    Below is my HTML code -

    


    <video class="video-js vjs-default-skin" controls="controls">&#xA;    <source src="https://localhost:7063/videos/no1lvswh.zdw.mkv/index.m3u8" type="application/x-mpegURL">&#xA;  </source></video>  &#xA;

    &#xA;

  • export .ogg audio packets with ffmpeg

    15 décembre 2020, par badcode

    My purpose is to read a simple .ogg file from disk and export all the audio packets to disk again as multiple .ogg files.

    &#xA;

    &#xA;

    // creating AVIOContext (main)

    &#xA;

    &#xA;

            AVIOContext avio = avio_alloc_context(new BytePointer(av_malloc(BUFFER_SIZE)), &#xA;        BUFFER_SIZE, 1, outputFormatContext, null, writeCallback, null);&#xA;        outputFormatContext.pb(avio);&#xA;        ret = avformat_write_header(outputFormatContext, (AVDictionary)null);&#xA;&#xA;       &#xA;

    &#xA;

    &#xA;

    // reading packets and write them to disk

    &#xA;

    &#xA;

     AVPacket pkt = new AVPacket();&#xA;    while (av_read_frame(inputFormatContext, pkt) >= 0) &#xA;    {&#xA;        &#xA;        ret = av_write_frame(outputFormatContext, pkt);&#xA;        if (ret != 0) {&#xA;            System.out.println("Write frame is failed ");&#xA;        }&#xA;        &#xA;        av_packet_unref(pkt);&#xA;    }&#xA;

    &#xA;

    &#xA;

    and finally, this is my callback function :

    &#xA;

    &#xA;

    static int BUFFER_SIZE = 8192;&#xA;    static class WriteCallback extends Write_packet_Pointer_BytePointer_int {&#xA;        @Override public int call(Pointer opaque, BytePointer buf, int buf_size) {&#xA;            try {&#xA;                &#xA;                File dir = new File("audio_parts");&#xA;                if (!dir.exists()) {&#xA;                    dir.mkdir();&#xA;                }&#xA;                &#xA;                FileOutputStream fos = new FileOutputStream(dir.getAbsolutePath() &#x2B; "/audio_file_part" &#x2B; fileCount);&#xA;                                &#xA;                byte[] b = new byte[buf_size];&#xA;                buf.get(b, 0, buf_size);&#xA;                fos.write(b, 0, buf_size);&#xA;                &#xA;                fos.close();&#xA;                fileCount&#x2B;&#x2B;;&#xA;                return buf_size;&#xA;            }&#xA;            catch (Throwable t) {&#xA;                System.err.println("Error on OutputStream.write(): " &#x2B; t);&#xA;                return -1;&#xA;            }&#xA;        }&#xA;    }&#xA;&#xA;    static WriteCallback writeCallback = new WriteCallback();&#xA;

    &#xA;

    Actually, this code is working well but I have some problems with packets. I wanted to export each packet one by one, but for the test.ogg the callback function is called for every 50 packets(50 packets=1 second), and this number changes for other audio files.

    &#xA;

    How can I control the callback and is it possible to extract sound packets one by one as a .ogg file.

    &#xA;