
Recherche avancée
Médias (91)
-
Head down (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
Echoplex (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
Discipline (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
Letting you (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
1 000 000 (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
999 999 (wav version)
26 septembre 2011, par
Mis à jour : Avril 2013
Langue : English
Type : Audio
Autres articles (68)
-
XMP PHP
13 mai 2011, parDixit 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 (...) -
Creating farms of unique websites
13 avril 2011, parMediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...) -
Le profil des utilisateurs
12 avril 2011, parChaque 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 (...)
Sur d’autres sites (7946)
-
MoviePy Create Video that keeps audio on Twitter
26 janvier 2019, par SDSI’m exporting lots of videos and was planning to use them on Twitter.
When I read the documentation the first time I (foolishly) thought I only had to worry about the dimensions and the rest would take care of itself.
I have many files that look and play great on my PC but as soon as I load them into Twitter there is no audio.
Twitter’s Media Best Practices are located here :Recommended Video Codec: H264 High Profile
Recommended Frame Rates: 30 FPS, 60 FPS
Recommended Video Resolution: 1280x720 (landscape), 720x1280 (portrait), 720x720 (square)
Recommended Minimum Video Bitrate: 5,000 kbps
Recommended Minimum Audio Bitrate: 128 kbps
Recommended Audio Codec: AAC LC
Recommended Aspect Ratio: 16:9 (landscape or portrait), 1:1 (square)
Advanced:
Frame rate must be 60 FPS or less
Dimensions must be between 32x32 and 1280x1024
File size must not exceed 512 mb
Duration must be between 0.5 seconds and 140 seconds
Aspect ratio must be between 1:3 and 3:1
Must have 1:1 pixel aspect ratio
Only YUV 4:2:0 pixel format is supported
Audio must be AAC with Low Complexity profile. High-Efficiency AAC is not supported
Audio must be mono or stereo, not 5.1 or greater
Must not have open GOP
Must use progressive scanHere’s the specs on a specific video :
Video ----
Length: 00:00:12
Frame width 1280
Frame height 720
Data rate 238kbps
Total bitrate 368kbps
Frame rate 24.00 frames/second
Audio --
Bit rate 129 kbps
Channels 2 (stereo)
Audio sample rate 44.100 kHz
File --
Size 551 KB
Item type MP4 FileThe code is fairly straightforward. I grab an image and make a short intro frame with it, then add two short clips and put it all together as you can see here :
image_clip = ImageClip(my_image) image_clip.set_duration(seconds).write_videofile('F:/sm_Temp_Files/trash_%s.mp4' % fname,fps=24)
image_video_clip = mpy.VideoFileClip('F:/sm_Temp_Files/trash_%s.mp4' % fname)
video_path = (my_video_path)
video_clip = mpy.VideoFileClip(video_path, target_resolution = (h,w),audio=True)
outro_clip = mpy.VideoFileClip('Logo_Intro_w_Stinger_Large.mp4',target_resolution = (h,w),audio=True)
clips = [image_video_clip,video_clip,image_video_clip,video_clip,image_video_clip,outro_clip]
slided_clips = [CompositeVideoClip([clip.fx( transfx.crossfadein, transition_seconds)]) for clip in clips]
c = concatenate_videoclips(slided_clips)
c.write_videofile('F:/sm_Short_Video/sm_%s.mp4' % fname,fps=24)I’ll admit, I’m out of my league to know what to do next. When Googling it looks like others have had similar issues but show fixes in FFMpeg, like this example.
Yes, I know MoviePy is written on top of FFMpeg but for a novice like me it would be really nice if there was tweaks I could do inside of MoviePy to get the audio to work on Twitter.
Thank you in advance !
-
Need Help Making Java Script Discord Music Bot
22 octobre 2018, par GambinoI have tried to use this code to make a discord music bot but i am getting error telling me i need ffmpeg, but how would I implement it into this code ?
index.js file
const Discord = require('discord.js');
const bot = new Discord.Client();
const config = require("./config.json");
const ytdl = require('ytdl-core');
var youtube = require('./youtube.js');
var ytAudioQueue = [];
var dispatcher = null;
bot.on('message', function(message) {
var messageParts = message.content.split(' ');
var command = messageParts[0].toLowerCase();
var parameters = messageParts.splice(1, messageParts.length);
switch (command) {
case "-join" :
message.reply("Attempting to join channel " + parameters[0]);
JoinCommand(parameters[0], message);
break;
case "-play" :
PlayCommand(parameters.join(" "), message);
break;
case "-playqueue":
PlayQueueCommand(message);
break;
}
});
function PlayCommand(searchTerm) {
if(bot.voiceConnections.array().length == 0) {
var defaultVoiceChannel = bot.channels.find(val => val.type === 'voice').name;
JoinCommand(defaultVoiceChannel);
}
youtube.search(searchTerm, QueueYtAudioStream);
}
function PlayQueueCommand(message) {
var queueString = "";
for(var x = 0; x < ytAudioQueue.length; x++) {
queueString += ytAudioQueue[x].videoName + ", ";
}
queueString = queueString.substring(0, queueString.length - 2);
message.reply(queueString);
}
function JoinCommand(ChannelName) {
var voiceChannel = GetChannelByName(ChannelName);
if (voiceChannel) {
voiceChannel.join();
console.log("Joined " + voiceChannel.name);
}
return voiceChannel;
}
/* Helper Methods */
function GetChannelByName(name) {
var channel = bot.channels.find(val => val.name === name);
return channel;
}
function QueueYtAudioStream(videoId, videoName) {
var streamUrl = youtube.watchVideoUrl + videoId;
if (!ytAudioQueue.length) {
ytAudioQueue.push(
{
'streamUrl' : streamUrl,
'videoName' : videoName
}
);
console.log('Queued audio ' + videoName);
PlayStream(ytAudioQueue[0].streamUrl);
}
else {
ytAudioQueue.push(
{
'streamUrl' : streamUrl,
'videoName' : videoName
}
);
}
console.log("Queued audio " + videoName);
}
function PlayStream(streamUrl) {
const streamOptions = {seek: 0, volume: 1};
if (streamUrl) {
const stream = ytdl(streamUrl, {filter: 'audioonly'});
if (dispatcher == null) {
var voiceConnection = bot.voiceConnections.first();
if(voiceConnection) {
console.log("Now Playing " + ytAudioQueue[0].videoname);
dispatcher = bot.voiceConnections.first().playStream(stream, streamOptions);
dispatcher.on('end', () => {
dispatcher = null;
PlayNextStreamInQueue();
});
dispatcher.on('error', (err) => {
console.log(err);
});
}
} else {
dispatcher = bot.voiceConnections.first().playStream(stream, streamOptions);
}
}
}
function PlayNextStreamInQueue() {
ytAudioQueue.splice(0, 1);
if (ytAudioQueue.length != 0) {
console.log("now Playing " + ytAudioQueue[0].videoName);
PlayStream(ytAudioQueue[0].streamUrl);
}
}
bot.login(config.token);youtube.js file
var request = require('superagent');
const API_KEY = "My API KEY";
const WATCH_VIDEO_URL = "https://www.youtube.com/watch?v=";
exports.watchVideoUrl = WATCH_VIDEO_URL;
exports.search = function search(searchKeywords, callback) {
var requestUrl = 'https://www.googleapis.com/youtube/v3/search' + '?part=snippet&q=' + escape(searchKeywords) + '&key=' + API_KEY;
request(requestUrl, (error, response) => {
if (!error && response.statusCode == 200) {
var body = response.body;
if (body.items.length == 0) {
console.log("I Could Not Find Anything!");
return;
}
for (var item of body.items) {
if (item.id.kind == 'youtube#video') {
callback(item.id.videoId, item.snippet.title);
return;
}
}
} else {
console.log("Unexpected error!");
return;
}
});
return;
};Error I am getting when I try to run code :
Joined General
C :\Discord Bot\node_modules\discord.js\src\client\voice\pcm\FfmpegConverterEngine.
js:80
throw new Error(
^
Error : FFMPEG was not found on your system, so audio cannot be played. Please make
sure FFMPEG is installed and in your PATH. -
Adding chapters to MP4 files, and being identified on iOS 12 podcast app
5 avril 2019, par Craig FrancisI have an MP4 file, where I’ve added chapters via ffmpeg.
But in the iOS 12 Podcasts app, from Apple, the chapters don’t appear. This should happen, as noted by idownloadblog.com
In comparison, when using QuickLook on MacOS, the list of chapters can be seen by clicking the chapters button (in the bottom right hand side of the window).
And opening in QuickTime Player, while there isn’t a list of chapters to view, you can use the "View > Next Chapter" menu item.
So I’m assuming this is a bug in iOS... but I’m wondering if there is another way to add chapters ? or if I’ve made a mistake ?
My current process is to create a "ffmetadata" file, as noted in the ffmpeg documentation :
;FFMETADATA1
title=Example
[CHAPTER]
TIMEBASE=1/1000
START=0
END=221913
title=Chapter 1
[CHAPTER]
TIMEBASE=1/1000
START=221913
END=1169241
title=Chapter 2https://ffmpeg.org/ffmpeg-formats.html#Metadata-1
Then I’ve tried each of the following commands :
ffmpeg -i 2019-01-02.mp4 -i 2019-01-02.meta -map_metadata 1 -codec copy 2019-01-02-chapters.mp4
ffmpeg -i 2019-01-02.mp4 -i 2019-01-02.meta -map_metadata 1 2019-01-02-chapters.mp4
ffmpeg -i 2019-01-02.mp4 -i 2019-01-02.meta -map_metadata 1 2019-01-02-chapters.mp3- The first one is from the ffmpeg documentation, where
-codec copy
means the audio file is not re-encoded. - The second one takes longer, while it re-encodes the audio data.
- The third one requires re-encoding to convert it into an MP3 file (which uses ID3 tags for the chapter data).
On a slightly unrelated note, the third party app "RSSRadio" does list the chapters, but the feature added in version 4 that allows you to "skip directly to the start of the next chapter", if the next chapter starts within the next 3 minutes, does not seem to work.
- The first one is from the ffmpeg documentation, where