
Recherche avancée
Médias (91)
-
Spoon - Revenge !
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
My Morning Jacket - One Big Holiday
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Zap Mama - Wadidyusay ?
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
David Byrne - My Fair Lady
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Beastie Boys - Now Get Busy
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Granite de l’Aber Ildut
9 septembre 2011, par
Mis à jour : Septembre 2011
Langue : français
Type : Texte
Autres articles (86)
-
Formulaire personnalisable
21 juin 2013, parCette page présente les champs disponibles dans le formulaire de publication d’un média et il indique les différents champs qu’on peut ajouter. Formulaire de création d’un Media
Dans le cas d’un document de type média, les champs proposés par défaut sont : Texte Activer/Désactiver le forum ( on peut désactiver l’invite au commentaire pour chaque article ) Licence Ajout/suppression d’auteurs Tags
On peut modifier ce formulaire dans la partie :
Administration > Configuration des masques de formulaire. (...) -
Qu’est ce qu’un masque de formulaire
13 juin 2013, parUn masque de formulaire consiste en la personnalisation du formulaire de mise en ligne des médias, rubriques, actualités, éditoriaux et liens vers des sites.
Chaque formulaire de publication d’objet peut donc être personnalisé.
Pour accéder à la personnalisation des champs de formulaires, il est nécessaire d’aller dans l’administration de votre MediaSPIP puis de sélectionner "Configuration des masques de formulaires".
Sélectionnez ensuite le formulaire à modifier en cliquant sur sont type d’objet. (...) -
Organiser par catégorie
17 mai 2013, parDans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...)
Sur d’autres sites (11596)
-
ffmpeg - Streaming rtsp data to local mp4 file
15 juillet 2017, par Pankhuri AgarwalHow can I save live streaming data from a local camera transported by rtsp to my local memory in a
.mp4
format.I am using Ubuntu 16.04 LTS and tried using
ffmpeg
3.3 but nothing seemed to work properly.The goal will be to provide live feed by mp4 by html5 and perform some modification on mp4 data.
Can anyone suggest how to make
ffmpeg
work or any other way ? -
How to Convert video into mp3 format using ffmpeg in nodejs and angular and then save converted audio into the database
2 septembre 2021, par Amir ShahzadThis is nodejs server side file


const express = require('express');
const ffmpeg = require('fluent-ffmpeg');
const fileUpload = require('express-fileupload');
const mongoose = require('mongoose');
const cors = require('cors')
const app = express();
const Video = require('./models/video');
mongoose.connect('mongodb://localhost:27017/YoutubeApp', {
 useNewUrlParser: true,
 useUnifiedTopology: true,
});
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error'));
db.once('open', () => {
 console.log('Data Base Connected Successfully!');
});

app.use(fileUpload({
 useTempFiles: true,
 tempFileDir: 'temp/'
}));
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(cors({ origin: 'http://localhost:4200' }));


ffmpeg.setFfmpegPath('/usr/bin/ffmpeg');

app.post('/mp4tomp3', (req, res) => {
 convertdata = req.body;
 console.log('path of innput is', req.body);
 function convert(input, output, callback) {
 ffmpeg(input)
 .output(output)
 .on('end', function() { 
 console.log('conversion ended');
 callback(null);
 }).on('error', function(err){
 console.log('error: ', err.code, err.msg);
 callback(err);
 }).run();
 }
 convert(convertdata, './temp/output.mp3', function(err){
 if(!err) {
 console.log('conversion complete');

 
 }
 })

 app.listen(3000, () => {
 console.log('Server Start On Port 3000')
 })



In Convert function i not know how i can get input by the user i'm new in angular Please anyone can solve this out thanks in advance


This is video model file


const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const videoSchema = new Schema({
 mp4: String,
});
module.exports = mongoose.model("Videos", videoSchema);



**This is Typescript code in angular client side that handle user input and select video **


import { ThrowStmt } from '@angular/compiler';
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { VideoConversionService } from 'src/services/video-conversion.service';

@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {

 submitted =false;
 form! : FormGroup
 data:any

 constructor(private formBuilder: FormBuilder,
 private videoService: VideoConversionService){}

 creatForm(){
 this.form = this.formBuilder.group({
 mp4: ['', Validators.required],
 });
 }
 ngOnInit(): void {
 this.creatForm();

 }


 convertVideo(){
 this.submitted = true
 this.videoService.conversion(this.form.value).subscribe(res => {
 this.data = res;
 })
 }

 }



I do not know how to create logic to do that (convert video into audio using angular framework)


This is app.component.html file where i want to get video from the user using input field


<div class="container">
 <h1>Video Proccessing App</h1>
 <form>
 <input type="file" formcontrolname="mp4" />
 <input type="submit" value="Convert" />
 </form>
</div>





But my code is not working and video is not converting into audio


This is my video service file where i calling nodejs api to perform the task


import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
 providedIn: 'root'
})
export class VideoConversionService {

constructor(private httpClient: HttpClient) { }

conversion(data: any){
 return this.httpClient.post('http://localhost:3000/mp4tomp3', data)
}
}



Please anyone can solve my problem Thanks in advance


-
How to save h264 frames as jpeg images using ffmpeg ?
17 août 2020, par Matthew CzarnekI would like to save thumbnails from a h264 stream that I'm turning into ffmpeg avpackets as jpegs.


I'm started with a h264 AVPacket (iframe) and decode it into an AVFrame using avcodec_send_packet/avcodec_receive_frame. Now trying to go from AVFrame and convert into AVPacket using avcodec_send_frame/avcodec_receive_packet


I can convert to png instead jpg, though I do get a the video looking like it's outputting three separate frames squeezed side by side into one. Wondering if it's one frame is R, next G, and finally B. I'm not sure, clearly I'm doing something wrong there. I figured it's possible it's the png encoder and I don't need it, so let's get jpg working first. But jpg is outputting unopenable files.


Any advice ?


Here is my code :


int output_thumbnails(AVPacket* video_packet)
{
 char png_file_name[max_chars_per_filename];
 char thumbnail_id_char[10];
 _itoa_s(thumbnail_id, thumbnail_id_char, 10);
 strcpy_s(png_file_name, max_chars_per_filename, time_stamped_filepath);
 strcat_s(png_file_name, max_chars_per_filename, time_stamped_filename);
 strcat_s(png_file_name, max_chars_per_filename, thumbnail_id_char);
 strcat_s(png_file_name, max_chars_per_filename, ".jpg");
 thumbnail_id++;

 int error_code = send_AVPacket_to_videocard(video_packet, av_codec_context_RTSP);

 //if (error_code == AVERROR_EOF)
 //{
 // // error_code = videocard_to_PNG(png_file_name, av_codec_context_RTSP, av_codec_RTSP);
 //}
 if (error_code == AVERROR(EAGAIN)) //send packets to videocard until function returns EAGAIN
 {
 error_code = videocard_to_PNG(png_file_name, av_codec_context_RTSP);

 //EAGAIN means that the video card buffer is ready to have the png pulled off of it
 if (error_code == AVERROR_EOF)
 {
 // error_code = videocard_to_PNG(png_file_name, av_codec_context_RTSP, av_codec_RTSP);
 }
 else if (error_code == AVERROR(EAGAIN))
 {

 }
 else
 {
 deal_with_av_errors(error_code, __LINE__, __FILE__);
 }
 }
 else
 {
 deal_with_av_errors(error_code, __LINE__, __FILE__);
 }
 
 return 0;
}



VideoThumbnailGenerator.h :
#include "VideoThumbnailGenerator.h"


bool decoder_context_created = false;
bool encoder_context_created = false;

AVCodecContext* h264_decoder_codec_ctx;
AVCodecContext* thumbnail_encoder_codec_ctx;

int send_AVPacket_to_videocard(AVPacket* packet, AVCodecContext* codec_ctx)
{
 if(!decoder_context_created)
 {
 AVCodec* h264_codec = avcodec_find_decoder(codec_ctx->codec_id);
 h264_decoder_codec_ctx = avcodec_alloc_context3(h264_codec);

 h264_decoder_codec_ctx->width = codec_ctx->width;
 h264_decoder_codec_ctx->height = codec_ctx->height;
 h264_decoder_codec_ctx->pix_fmt = AV_PIX_FMT_RGB24;
 h264_decoder_codec_ctx->codec_type = AVMEDIA_TYPE_VIDEO;
 h264_decoder_codec_ctx->skip_frame = AVDISCARD_NONINTRA;//AVDISCARD_NONREF;//AVDISCARD_NONINTRA;
 
 h264_decoder_codec_ctx->time_base.num = 1;
 h264_decoder_codec_ctx->time_base.den = 30;

 h264_decoder_codec_ctx->extradata = codec_ctx->extradata;
 h264_decoder_codec_ctx->extradata_size = codec_ctx->extradata_size;
 
 int error_code = avcodec_open2(h264_decoder_codec_ctx, h264_codec, NULL);
 if (!h264_codec) {
 return -1;
 }

 if (error_code < 0)
 {
 return error_code;
 }
 decoder_context_created = true;
 }

 
 //use hardware decoding to decode video frame
 int error_code = avcodec_send_packet(h264_decoder_codec_ctx, packet);
 if(error_code == AVERROR(EAGAIN))
 {
 return AVERROR(EAGAIN);
 }
 if(error_code<0)
 {
 printf("Error: Could not send packet to video card");
 return error_code;
 }

 return 0;
}

int videocard_to_PNG(char *png_file_path, AVCodecContext* codec_ctx)
{
 if (!encoder_context_created)
 {
 //AVCodec* thumbnail_codec = avcodec_find_encoder(AV_CODEC_ID_PNG);
 AVCodec* thumbnail_codec = avcodec_find_encoder(AV_CODEC_ID_JPEG2000);
 thumbnail_encoder_codec_ctx = avcodec_alloc_context3(thumbnail_codec);

 thumbnail_encoder_codec_ctx->width = 128;
 thumbnail_encoder_codec_ctx->height = (int)(((float)codec_ctx->height/(float)codec_ctx->width) * 128);
 thumbnail_encoder_codec_ctx->pix_fmt = AV_PIX_FMT_RGB24; //AV_PIX_FMT_YUVJ420P
 thumbnail_encoder_codec_ctx->codec_type = AVMEDIA_TYPE_VIDEO;

 thumbnail_encoder_codec_ctx->time_base.num = 1;
 thumbnail_encoder_codec_ctx->time_base.den = 30;

 bool thread_check = thumbnail_encoder_codec_ctx->thread_type & FF_THREAD_FRAME;
 bool frame_threads_check = thumbnail_encoder_codec_ctx->codec->capabilities & AV_CODEC_CAP_FRAME_THREADS;
 
 int error_code = avcodec_open2(thumbnail_encoder_codec_ctx, thumbnail_codec, NULL);
 if (!thumbnail_codec) {
 return -1;
 }

 if (error_code < 0)
 {
 return error_code;
 }
 encoder_context_created = true;
 }
 
 AVFrame* thumbnail_frame = av_frame_alloc();
 AVPacket* thumbnail_packet = av_packet_alloc();
 //av_init_packet(png_packet);
 int error_code = avcodec_receive_frame(h264_decoder_codec_ctx, thumbnail_frame);

 //check for errors everytime
 //note EAGAIN errors won't get here since they won't get past while
 if (error_code < 0 && error_code != AVERROR(EAGAIN))
 {
 printf("Error: Could not get frame from video card");
 return error_code;
 }
 //empty buffer if there are any more frames to pull (there shouldn't be)
 //while(error_code != AVERROR(EAGAIN))
 //{
 // //check for errors everytime
 // //note EAGAIN errors won't get here since they won't get past while
 // if (error_code < 0)
 // {
 // printf("Error: Could not get frame from video card");
 // return error_code;
 // }
 // 
 // error_code = avcodec_receive_frame(h264_decoder_codec_ctx, png_frame);
 //}

 //now we convert back to AVPacket, this time one holding PNG info, so we can store to file
 error_code = avcodec_send_frame(thumbnail_encoder_codec_ctx, thumbnail_frame);

 if (error_code >= 0) {
 error_code = avcodec_receive_packet(thumbnail_encoder_codec_ctx, thumbnail_packet);

 FILE* out_PNG;

 errno_t err = fopen_s(&out_PNG, png_file_path, "wb");
 if (err == 0) {
 fwrite(thumbnail_packet->data, thumbnail_packet->size, 1, out_PNG);
 }
 fclose(out_PNG);

 }
 return error_code;
}