Recherche avancée

Médias (1)

Mot : - Tags -/berlin

Autres articles (46)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Personnaliser les catégories

    21 juin 2013, par

    Formulaire de création d’une catégorie
    Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
    Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire.
    Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
    Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (7041)

  • Transcoding/ Converting mpeg to h264 using ffmpeg h264_nvenc

    15 septembre 2024, par Mustafa

    I'm trying to transcode a video rendered by Davinci Resolve, using ffmpeg from mpeg4 to h264, on Ubuntu, using the following command.

    


    ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i input.mov -c:a copy -c:v h264_nvenc -b:v 8M -preset 7 output-h264_nvenc-p7.mp4 -v verbose


    


    And my Nvidia card is NVIDIA GeForce GTX 1650.

    


    I'm gettting the following error :

    


    [mpeg4 @ 0x55a893ed3200] Video width 3840 not within range from 48 to 2032
[mpeg4 @ 0x55a893ed3200] Failed setup for format cuda: hwaccel initialisation returned error.


    


    And here's the complete output. The command produces an output but its quality is significantly less than the original.

    


      built with gcc 13 (Ubuntu 13.2.0-23ubuntu4)
  configuration: --enable-nonfree --enable-cuda-nvcc --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --disable-static --enable-shared --enable-gpl --enable-libx264
  libavutil      59. 36.100 / 59. 36.100
  libavcodec     61. 13.100 / 61. 13.100
  libavformat    61.  5.101 / 61.  5.101
  libavdevice    61.  2.101 / 61.  2.101
  libavfilter    10.  2.102 / 10.  2.102
  libswscale      8.  2.100 /  8.  2.100
  libswresample   5.  2.100 /  5.  2.100
  libpostproc    58.  2.100 / 58.  2.100
-vsync is deprecated. Use -fps_mode
Passing a number to -vsync is deprecated, use a string argument as described in the manual.
Selecting decoder 'mpeg4' because of requested hwaccel method cuda
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 512
    compatible_brands: qt  
    creation_time   : 2024-09-15T04:25:29.000000Z
    encoder         : Blackmagic Design DaVinci Resolve
  Duration: 00:20:34.87, start: 0.000000, bitrate: 347243 kb/s
  Stream #0:0[0x1]: Video: mpeg4 (Simple Profile), 1 reference frame (mp4v / 0x7634706D), yuv420p(bt709/bt709/unknown, left), 3840x2160 [SAR 1:1 DAR 16:9], 345703 kb/s, 60 fps, 60 tbr, 15360 tbn (default)
      Metadata:
        creation_time   : 2024-09-15T04:25:29.000000Z
        handler_name    : VideoHandler
        vendor_id       :     
        encoder         : MPEG4 Video
        timecode        : 01:00:00:00
  Stream #0:1[0x2]: Audio: pcm_s16le (lpcm / 0x6D63706C), 48000 Hz, stereo, s16, 1536 kb/s (default)
      Metadata:
        creation_time   : 2024-09-15T04:25:29.000000Z
        handler_name    : SoundHandler
        vendor_id       : [0][0][0][0]
  Stream #0:2[0x3](eng): Data: none (tmcd / 0x64636D74) (default)
      Metadata:
        creation_time   : 2024-09-15T04:25:29.000000Z
        handler_name    : TimeCodeHandler
        timecode        : 01:00:00:00
[out#0/mp4 @ 0x55a8929e8d80] No explicit maps, mapping streams automatically...
[vost#0:0/h264_nvenc @ 0x55a8929f5880] Created video stream from input stream 0:0
[aost#0:1/copy @ 0x55a893867080] Created audio stream from input stream 0:1
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (h264_nvenc))
  Stream #0:1 -> #0:1 (copy)
[vost#0:0/h264_nvenc @ 0x55a8929f5880] Starting thread...
[vf#0:0 @ 0x55a8929f17c0] Starting thread...
[vist#0:0/mpeg4 @ 0x55a89293a100] [dec:mpeg4 @ 0x55a8929f4440] Starting thread...
[in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 0x55a8929e0600] Starting thread...
Press [q] to stop, [?] for help
[mpeg4 @ 0x55a893ed3200] NVDEC capabilities:
[mpeg4 @ 0x55a893ed3200] format supported: yes, max_mb_count: 8192
[mpeg4 @ 0x55a893ed3200] min_width: 48, max_width: 2032
[mpeg4 @ 0x55a893ed3200] min_height: 16, max_height: 2032
[mpeg4 @ 0x55a893ed3200] Video width 3840 not within range from 48 to 2032
[mpeg4 @ 0x55a893ed3200] Failed setup for format cuda: hwaccel initialisation returned error.
[graph -1 input from stream 0:0 @ 0x75c970002e40] w:3840 h:2160 pixfmt:yuv420p tb:1/15360 fr:60/1 sar:1/1 csp:bt709 range:unknown
[graph -1 input from stream 0:0 @ 0x75c970002e40] video frame properties congruent with link at pts_time: 0
[h264_nvenc @ 0x55a8929e62c0] Using device cuda0 (type cuda) with h264_nvenc encoder.
[h264_nvenc @ 0x55a8929e62c0] Loaded Nvenc version 12.2
[h264_nvenc @ 0x55a8929e62c0] Nvenc initialized successfully
[h264_nvenc @ 0x55a8929e62c0] The selected preset is deprecated. Use p1 to p7 + -tune or fast/medium/slow.
Output #0, mp4, to 'output-h264_nvenc-p7.mp4':
  Metadata:
    major_brand     : qt  
    minor_version   : 512
    compatible_brands: qt  
    encoder         : Lavf61.5.101
  Stream #0:0: Video: h264 (Main), 1 reference frame (avc1 / 0x31637661), yuv420p(tv, bt709/bt709/unknown, progressive, left), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 8000 kb/s, 60 fps, 15360 tbn (default)
      Metadata:
        creation_time   : 2024-09-15T04:25:29.000000Z
        handler_name    : VideoHandler
        vendor_id       :     
        timecode        : 01:00:00:00
        encoder         : Lavc61.13.100 h264_nvenc
      Side data:
        cpb: bitrate max/min/avg: 0/0/8000000 buffer size: 16000000 vbv_delay: N/A
  Stream #0:1: Audio: pcm_s16le (ipcm / 0x6D637069), 48000 Hz, stereo, s16, 1536 kb/s (default)
      Metadata:
        creation_time   : 2024-09-15T04:25:29.000000Z
        handler_name    : SoundHandler
        vendor_id       : [0][0][0][0]


    


    How can I find the cause of the error and resolve it ?

    


    Also is there a way to improve the quality of the output video as it's much lower than the original ? I tried doing the same conversion using libxh264 (using the CPU) and that produced a far better video.

    


  • java.lang.UnsatisfiedLinkError : Couldn't load ffmpeg library findLibrary returned null

    22 février 2017, par Muthukumar Subramaniam

    I am new to live streaming from android to youtube in android. I mentioned my Project Structrue and build the gradle file in android. FFmpeg library could not load in runtime.

    Note : I am working in windows 10 and android studio 2.1.2

       apply plugin: 'com.android.application'

    android {
       compileSdkVersion 23
       buildToolsVersion "23.0.1"

       packagingOptions {
           exclude 'META-INF/DEPENDENCIES'
           exclude 'META-INF/NOTICE'
           exclude 'META-INF/NOTICE.txt'
           exclude 'META-INF/LICENSE'
           exclude 'META-INF/LICENSE.txt'
       }

       defaultConfig {
           applicationId "com.ephron.mobilizerapp"
           minSdkVersion 14
           targetSdkVersion 23
           versionCode 1
           versionName "1.4"
           multiDexEnabled true
       }
       dexOptions {
           javaMaxHeapSize "4g"
       }


       buildTypes {
           release {
               minifyEnabled false
               proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
           }
       }
       sourceSets {
           main {
               assets.srcDirs = ['src/main/assets', 'src/main/assets/']

           }
       }
       sourceSets { main {
           jni.srcDirs = ['src/main/jni', 'src/main/jni/libs']
           jni.srcDirs = ['libs']
           jni.srcDirs = []
       } }
    }

    dependencies {
       testCompile 'junit:junit:4.12'
       compile files('libs/httpclient-4.5.2.jar')
       compile files('libs/httpcore-4.4.4.jar')
       compile files('libs/httpmime-4.2.1.jar')
       compile files('libs/YouTubeAndroidPlayerApi.jar')
       compile 'com.android.support:appcompat-v7:23.1.0'
       compile 'com.google.android.gms:play-services:10.0.1'
       compile 'com.google.code.gson:gson:2.2.2'
       compile 'com.google.firebase:firebase-messaging:9.2.0'
       compile 'testfairy:testfairy-android-sdk:1.+@aar'
       compile 'com.android.support:multidex:1.0.0'
       compile 'com.mcxiaoke.volley:library:1.0.19'
       compile 'com.squareup.picasso:picasso:2.5.2'
       compile 'cn.aigestudio.wheelpicker:WheelPicker:1.1.2'
       compile 'com.google.android.gms:play-services-maps:10.0.1'
       compile 'com.google.apis:google-api-services-youtube:v3-rev182-1.22.0'
       compile 'com.google.api-client:google-api-client-android:1.22.0'
       compile 'com.google.http-client:google-http-client-gson:1.19.0'
       compile 'com.google.android.gms:play-services-ads:10.0.1'
       compile 'com.google.android.gms:play-services-auth:10.0.1'
       compile 'com.google.android.gms:play-services-gcm:10.0.1'
       compile files('libs/ffmpeg-android.jar')
    }
    apply plugin: 'com.google.gms.google-services'

    My Project Structure mentioned below Link

    https://www.screencast.com/t/E0TFsMUi1

    Application.mk file

       APP_OPTIM := release
    APP_ABI := all
    APP_STL := gnustl_static
    APP_CPPFLAGS := -frtti -fexceptions

    Android.mk file

      #
    # Copyright (c) 2014 Google Inc.
    #
    # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
    # in compliance with the License. You may obtain a copy of the License at
    #
    # http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software distributed under the License
    # is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
    # or implied. See the License for the specific language governing permissions and limitations under
    # the License.


    # set NDK_PROJECT_PATH := D:/MobilizerApp/app/src/main/jni

    WORKING_DIR := $(call my-dir)

    include $(CLEAR_VARS)
    LOCAL_PATH := $(WORKING_DIR)/../third_party/lame/libmp3lame
    LOCAL_MODULE    := lame
    LOCAL_C_INCLUDES := $(WORKING_DIR)/../third_party/lame/libmp3lame \
                       $(WORKING_DIR)/../third_party/lame/include
    LOCAL_CFLAGS := -DSTDC_HEADERS -std=c99
    LOCAL_ARM_MODE := arm
    APP_OPTIM := release

    LOCAL_SRC_FILES := VbrTag.c \
                      bitstream.c \
                      encoder.c \
                      fft.c \
                      gain_analysis.c \
                      id3tag.c \
                      lame.c \
                      mpglib_interface.c \
                      newmdct.c \
                      presets.c \
                      psymodel.c \
                      quantize.c \
                      quantize_pvt.c \
                      reservoir.c \
                      set_get.c \
                      tables.c \
                      takehiro.c \
                      util.c \
                      vbrquantize.c \
                      version.c


    #include $(BUILD_STATIC_LIBRARY)

    include $(BUILD_STATIC_LIBRARY)

    #include $(CLEAR_VARS)
    #LOCAL_MODULE  := mp3lame_a
    #LOCAL_STATIC_LIBRARIES := lame

    #include $(BUILD_EXECUTABLE)

    include $(CLEAR_VARS)
    LOCAL_PATH := $(WORKING_DIR)
    LOCAL_MODULE    := ffmpeg
    LOCAL_CFLAGS := -DHAVE_AV_CONFIG_H -std=c99 -D__STDC_CONSTANT_MACROS -DSTDC_HEADERS -Wno-deprecated-declarations
    LOCAL_SRC_FILES := ffmpeg-jni.c
    LOCAL_C_INCLUDES := $(WORKING_DIR)/libavcodec $(WORKING_DIR)/libavcodec/arm $(WORKING_DIR)/libavformat $(WORKING_DIR)/libavutil $(WORKING_DIR)/libavutil/arm

    LOCAL_STATIC_LIBRARIES := lame

    LOCAL_LDLIBS := -llog -lm -lz $(WORKING_DIR)/../third_party/lib/libavformat.a $(WORKING_DIR)/../third_party/lib/libavcodec.a $(WORKING_DIR)/../third_party/lib/libavfilter.a $(WORKING_DIR)/../third_party/lib/libavresample.a $(WORKING_DIR)/../third_party/lib/libswscale.a $(WORKING_DIR)/../third_party/lib/libavutil.a $(WORKING_DIR)/../third_party/lib/libx264.a $(WORKING_DIR)/../third_party/lib/libpostproc.a $(WORKING_DIR)/../third_party/lib/libswresample.a $(WORKING_DIR)/../third_party/lib/libfdk-aac.a

    APP_OPTIM := release

    include $(BUILD_SHARED_LIBRARY)

    FFMPEG.Java

    package com.ephronsystem.mobilizerapp;


    public class Ffmpeg {


       static {
           System.loadLibrary("ffmpeg");
       }

       public static native boolean init(int width, int height, int audio_sample_rate, String rtmpUrl);

       public static native void shutdown();

       // Returns the size of the encoded frame.
       public static native int encodeVideoFrame(byte[] yuv_image);

       public static native int encodeAudioFrame(short[] audio_data, int length);
    }
  • Sequencing MIDI From A Chiptune

    28 avril 2013, par Multimedia Mike — Outlandish Brainstorms

    The feature requests for my game music appreciation website project continue to pour in. Many of them take the form of “please add player support for system XYZ and the chiptune library to go with it.” Most of these requests are A) plausible, and B) in process. I have also received recommendations for UI improvements which I take under consideration. Then there are the numerous requests to port everything from Native Client to JavaScript so that it will work everywhere, even on mobile, a notion which might take a separate post to debunk entirely.

    But here’s an interesting request about which I would like to speculate : Automatically convert a chiptune into a MIDI file. I immediately wanted to dismiss it as impossible or highly implausible. But, as is my habit, I started pondering the concept a little more carefully and decided that there’s an outside chance of getting some part of the idea to work.

    Intro to MIDI
    MIDI stands for Musical Instrument Digital Interface. It’s a standard musical interchange format and allows music instruments and computers to exchange musical information. The file interchange format bears the extension .mid and contains a sequence of numbers that translate into commands separated by time deltas. E.g. : turn key on (this note, this velocity) ; wait x ticks ; turn key off ; wait y ticks ; etc. I’m vastly oversimplifying, as usual.

    MIDI fascinated me back in the days of dialup internet and discrete sound cards (see also my write-up on the Gravis Ultrasound). Typical song-length MIDI files often ranged from a few kilobytes to a few 10s of kilobytes. They were significantly smaller than the MOD et al. family of tracker music formats mostly by virtue of the fact that MIDI files aren’t burdened by transporting digital audio samples.

    I know I’m missing a lot of details. I haven’t dealt much with MIDI in the past… 15 years or so (ever since computer audio became a blur of MP3 and AAC audio). But I’m led to believe it’s still relevant. The individual who requested this feature expressed an interest in being able to import the sequenced data into any of the many music programs that can interpret .mid files.

    The Pitch
    To limit the scope, let’s focus on music that comes from the 8-bit Nintendo Entertainment System or the original Game Boy. The former features 2 square wave channels, a triangle wave, a noise channel, and a limited digital channel. The latter creates music via 2 square waves, a wave channel, and a noise channel. The roles that these various channels usually play typically break down as : square waves represent the primary melody, triangle wave is used to simulate a bass line, noise channel approximates a variety of percussive sounds, and the DPCM/wave channels are fairly free-form. They can have random game sound effects or, if they are to assist in the music, are often used for more authentic percussive sounds.

    The various channels are controlled via an assortment of memory-mapped hardware registers. These registers are fed values such as frequency, volume, and duty cycle. My idea is to modify the music playback engine to track when various events occur. Whenever a channel is turned on or off, that corresponds to a MIDI key on or off event. If a channel is already playing but a new frequency is written, that would likely count as a note change, so log a key off event followed by a new key on event.

    There is the major obstacle of what specific note is represented by a channel in a particular state. The MIDI standard defines 128 different notes spanning 11 octaves. Empirically, I wonder if I could create a table which maps the assorted frequencies to different MIDI notes ?

    I think this strategy would only work with the square and triangle waves. Noise and digital channels ? I’m not prepared to tackle that challenge.

    Prior Work ?
    I have to wonder if there is any existing work in this area. I’m certain that people have wanted to do this before ; I wonder if anyone has succeeded ?

    Just like reverse engineering a binary program entails trying to obtain a higher level abstraction of a program from a very low level representation, this challenge feels like reverse engineering a piece of music as it is being performed and automatically expressing it in a higher level form.