Recherche avancée

Médias (0)

Mot : - Tags -/formulaire

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

Autres articles (6)

  • Sélection de projets utilisant MediaSPIP

    29 avril 2011, par

    Les exemples cités ci-dessous sont des éléments représentatifs d’usages spécifiques de MediaSPIP pour certains projets.
    Vous pensez avoir un site "remarquable" réalisé avec MediaSPIP ? Faites le nous savoir ici.
    Ferme MediaSPIP @ Infini
    L’Association Infini développe des activités d’accueil, de point d’accès internet, de formation, de conduite de projets innovants dans le domaine des Technologies de l’Information et de la Communication, et l’hébergement de sites. Elle joue en la matière un rôle unique (...)

  • Les vidéos

    21 avril 2011, par

    Comme les documents de type "audio", Mediaspip affiche dans la mesure du possible les vidéos grâce à la balise html5 .
    Un des inconvénients de cette balise est qu’elle n’est pas reconnue correctement par certains navigateurs (Internet Explorer pour ne pas le nommer) et que chaque navigateur ne gère en natif que certains formats de vidéos.
    Son avantage principal quant à lui est de bénéficier de la prise en charge native de vidéos dans les navigateur et donc de se passer de l’utilisation de Flash et (...)

  • Que fait exactement ce script ?

    18 janvier 2011, par

    Ce script est écrit en bash. Il est donc facilement utilisable sur n’importe quel serveur.
    Il n’est compatible qu’avec une liste de distributions précises (voir Liste des distributions compatibles).
    Installation de dépendances de MediaSPIP
    Son rôle principal est d’installer l’ensemble des dépendances logicielles nécessaires coté serveur à savoir :
    Les outils de base pour pouvoir installer le reste des dépendances Les outils de développements : build-essential (via APT depuis les dépôts officiels) ; (...)

Sur d’autres sites (3865)

  • Ffmpeg Command to capture video from Decklink 4k Extreme in Ubuntu Linux

    24 septembre 2016, par George.Ef

    I am trying to capture a video using ffmpeg, from the HDMI input port of the Blackmagic DeckLink 4K Extreme capture card in Ubuntu Linux.

    As per the ffmpeg Documentation I have tried the following :

    ffmpeg -f decklink -video_input 'hdmi' -i 'DeckLink 4K Extreme (1)@14' -acodec copy -vcodec copy ~/testCapture/card1_f14_hdmi.avi

    but no matter what I do I always get this picture as a video
    Video unavailable

    My ffmpeg version is :

    ffmpeg version git-2016-08-15-4899953 Copyright (c) 2000-2016 the FFmpeg developers
    built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
    configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static
    --extra-cflags=-I/root/ffmpeg_build/include
    --extra-ldflags=-L/root/ffmpeg_build/lib
    --bindir=/root/bin --enable-gpl --enable-libass --enable-libfdk-aac
    --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora
    --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265
    --enable-decklink
    --extra-cflags=-I/root/decklinkSDK/Blackmagic_DeckLink_SDK/Linux/include
    --extra-ldflags=-L/root/decklinkSDK/Blackmagic_DeckLink_SDK/Linux/include
    --enable-nonfree
    libavutil      55. 28.100 / 55. 28.100
    libavcodec     57. 51.102 / 57. 51.102
    libavformat    57. 46.101 / 57. 46.101
    libavdevice    57.  0.102 / 57.  0.102
    libavfilter     6. 51.100 /  6. 51.100
    libswscale      4.  1.100 /  4.  1.100
    libswresample   2.  1.100 /  2.  1.100
    libpostproc    54.  0.100 / 54.  0.100

    I have two of these cards as per the following :

    ffmpeg -f decklink -list_devices 1 -i dummy
    .....
    [decklink @ 0x2e9e440] Blackmagic DeckLink devices:
    [decklink @ 0x2e9e440]    'DeckLink 4K Extreme (1)'
    [decklink @ 0x2e9e440]    'DeckLink 4K Extreme (2)'

    I am able to get a list of the supported formats with the following :

    ffmpeg -f decklink -list_formats 1 -i 'DeckLink 4K Extreme (1)'
    ...
    [decklink @ 0x36e2440] Supported formats for 'DeckLink 4K Extreme (1)':
    [decklink @ 0x36e2440]    1   720x486 at 30000/1001 fps (interlaced, lower field first)
    [decklink @ 0x36e2440]    2   720x576 at 25000/1000 fps (interlaced, upper field first)
    [decklink @ 0x36e2440]    3   1920x1080 at 24000/1001 fps
    [decklink @ 0x36e2440]    4   1920x1080 at 24000/1000 fps
    [decklink @ 0x36e2440]    5   1920x1080 at 25000/1000 fps
    [decklink @ 0x36e2440]    6   1920x1080 at 30000/1001 fps
    [decklink @ 0x36e2440]    7   1920x1080 at 30000/1000 fps
    [decklink @ 0x36e2440]    8   1920x1080 at 25000/1000 fps (interlaced, upper field first)
    [decklink @ 0x36e2440]    9   1920x1080 at 30000/1001 fps (interlaced, upper field first)
    [decklink @ 0x36e2440]    10  1920x1080 at 30000/1000 fps (interlaced, upper field first)
    [decklink @ 0x36e2440]    11  1920x1080 at 50000/1000 fps
    [decklink @ 0x36e2440]    12  1920x1080 at 60000/1001 fps
    [decklink @ 0x36e2440]    13  1920x1080 at 60000/1000 fps
    [decklink @ 0x36e2440]    14  1280x720 at 50000/1000 fps
    [decklink @ 0x36e2440]    15  1280x720 at 60000/1001 fps
    [decklink @ 0x36e2440]    16  1280x720 at 60000/1000 fps
    ...
    DeckLink 4K Extreme (1): Immediate exit requested

    What should I use with ffmpeg in order to capture an HD video with sound from the HDMI port ?

  • Golang command working in terminal but not with exec package

    17 août 2016, par Jon Stevens

    I am converting a video generation library from NodeJS to GO that primarily uses FFMPEG for all the video processing. I already have all the FFMPEG commands written out to do the generation I want. The issue is that when I try to run the command through the os/exec package, it fails. However, if I copy the exact command and run it directly in the terminal it works and I cannot figure out why that is. My code that runs the command is below :

    command := "ffmpeg -y -loop 1 -i image.png -vf 'fade=in:0:15,fade=out:105:15' -c:v mpeg2video -t 5 -s 1280x720 -r 30 -q:v 1 -preset ultrafast image.mpg"

    parts := strings.Fields(command)
    cmd := exec.Command(parts[0], parts[1:]...)
    cmd.Stderr = os.Stderr
    cmd.Stdout = os.Stdout
    err := cmd.Run()
    if err != nil {
       panic(err)
    }

    The ffmpeg error I get when I try to run this code is :

    [AVFilterGraph @ 0x22a9bc0] No such filter : ’fade=in:0:15,fade=out:105:15’

    Error opening filters !

    2016/08/17 17:48:53 exit status 1

    Like I previously stated, if I copy the EXACT command :

    ffmpeg -y -loop 1 -i image.png -vf 'fade=in:0:15,fade=out:105:15' -c:v mpeg2video -t 5 -s 1280x720 -r 30 -q:v 1 -preset ultrafast image.mpg

    and run it directly in the terminal, it works no problem.

    PLEASE HELP.

  • Approaches To Modifying Game Resource Files

    16 août 2016, par Multimedia Mike — Game Hacking

    I have been assisting The Translator in the translation of another mid-1990s adventure game. This one isn’t quite as multimedia-heavy as the last title, and the challenges are a bit different. I wanted to compose this post in order to describe my thought process and mental model in approaching this problem. Hopefully, this will help some others understand my approach since what I’m doing here often appears as magic to some of my correspondents.

    High Level Model
    At the highest level, it is valuable to understand the code and the data at play. The code is the game’s engine and the data refers to the collection of resources that comprise the game’s graphics, sound, text, and other assets.


    High-level game engine model
    Simplistic high-level game engine model

    Ideally, we want to change the data in such a way that the original game engine adopts it as its own because it has the same format as the original data. It is very undesirable to have to modify the binary engine executable in any way.

    Modifying The Game Data Directly
    How to modify the data ? If we modify the text strings for the sake of language translation, one approach might be to search for strings within the game data files and change them directly. This model assumes that the text strings are stored in a plain, uncompressed format. Some games might store these strings in a text format which can be easily edited with any text editor. Other games will store them as binary data.

    In the latter situation, a game hacker can scan through data files with utilities like Unix ‘strings’ to find the resources with the desired strings. Then, use a hex editor to edit the strings directly. For example, change “Original String”…

    0098F800   00 00 00 00  00 00 00 4F  72 69 67 69  6E 61 6C 20  .......Original 
    0098F810   53 74 72 69  6E 67 00 00  00 00 00 00  00 00 00 00  String..........
    

    …to “Short String” and pad the difference in string lengths using spaces (0x20) :

    0098F800   00 00 00 00  00 00 00 53  68 6F 72 74  20 53 74 72  .......Short Str
    0098F810   69 6E 67 20  20 20 00 00  00 00 00 00  00 00 00 00  ing   ..........
    

    This has some obvious problems. First, translated strings need to be of equal our smaller length compared to the original. What if we want to encode “Much Longer String” ?

    0098F800   00 00 00 00  00 00 00 4D  75 63 68 20  4C 6F 6E 67  .......Much Long
    0098F810   65 72 20 53  74 72 00 00  00 00 00 00  00 00 00 00  er Str..........
    

    It won’t fit. The second problem pertains to character set limitations. If the font in use was only designed for ASCII, it’s going to be inadequate for expressing nearly any other language.

    So a better approach is needed.

    Understanding The Data Structures
    An alternative to the approach outlined above is to understand the game’s resources so they can be modified at a deeper level. Here’s a model to motivate this investigation :


    Model of the game resource archive model
    Model of the game resource archive format

    This is a very common layout for such formats : there is a file header, a sequence of resource blocks, and a trailing index which describes the locations and types of the foregoing blocks.

    What use is understanding the data structures ? In doing so, it becomes possible to write new utilities that disassemble the data into individual pieces, modify the necessary pieces, and then reassemble them into a form that the original game engine likes.

    It’s important to take a careful, experimental approach to this since mistakes can be ruthlessly difficult to debug (unless you relish the thought of debugging the control flow through an opaque DOS executable). Thus, the very first goal in all of this is to create a program that can disassemble and reassemble the resource, thus creating an identical resource file. This diagram illustrates this complex initial process :


    Rewriting the game resource file
    Rewriting the game resource file

    So, yeah, this is one of the most complicated “copy file” operations that I can possibly code. But it forms an important basis, since the next step is to carefully replace one piece at a time.


    Modifying a specific game resource
    Modifying a specific game resource

    This diagram shows a simplistic model of a resource block that contains a series of message strings. The header contains pointers to each of the strings within the block. Instead of copying this particular resource block directly to the new file, a proposed modification utility will intercept it and rewrite the entire thing, writing new strings of arbitrary length and creating an adjusted header which will correctly point to the start of each new string. Thus, translated strings can be longer than the original strings.

    Further Work
    Exploiting this same approach, we can intercept and modify other game resources including fonts, images, and anything else that might need to be translated. I will explore specific examples in a later blog post.

    Followup