
Recherche avancée
Médias (3)
-
Exemple de boutons d’action pour une collection collaborative
27 février 2013, par
Mis à jour : Mars 2013
Langue : français
Type : Image
-
Exemple de boutons d’action pour une collection personnelle
27 février 2013, par
Mis à jour : Février 2013
Langue : English
Type : Image
-
Collections - Formulaire de création rapide
19 février 2013, par
Mis à jour : Février 2013
Langue : français
Type : Image
Autres articles (45)
-
Supporting all media types
13 avril 2011, parUnlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)
-
Contribute to translation
13 avril 2011You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
MediaSPIP is currently available in French and English (...) -
Librairies et binaires spécifiques au traitement vidéo et sonore
31 janvier 2010, parLes logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
Binaires complémentaires et facultatifs flvtool2 : (...)
Sur d’autres sites (3354)
-
Files such as libavcodec.so of the Unreal ffmpeg library cannot be packaged into the APK
26 décembre 2023, par user1875144I currently use Unreal 4.23.1 to develop Android system programs. I currently use the ffmpeg library to dynamically convert the sampling rate of sound. I add the relevant SO libraries to my Build.cs code. I use UE to package the Android APK program.
There is no problem with packaging, but the SO file cannot be packaged into the APK file, which causes the Android system to crash as soon as I run it. Has anyone encountered such a problem ? The programming language I use is C++
Below is the code in my build.cs file


using UnrealBuildTool;
using System.IO;
using System;

public class MIC : ModuleRules
{
 public MIC(ReadOnlyTargetRules Target) : base(Target)
 {
 PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

 PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay", "AudioCapture", "AudioMixer", "WebSockets", "Json", "JsonUtilities", "MediaAssets", "Voice","OnlineSubsystem"});
 
 string ThirdPartyPath = Path.Combine(ModuleDirectory, "../../ThirdParty/ffmpeg");
 string LibrariesPath = Path.Combine(ThirdPartyPath, "lib");
 string BinariesPath = Path.Combine(ModuleDirectory, "../../Binaries/Win64");

 PublicIncludePaths.Add(Path.Combine(ThirdPartyPath, "include"));

 // 根据目标平台加载相应的库文件
 if (Target.Platform == UnrealTargetPlatform.Win64)
 {
 // Windows 使用的库和 DLL 文件
 PublicAdditionalLibraries.Add(Path.Combine(LibrariesPath, "avcodec.lib"));
 PublicAdditionalLibraries.Add(Path.Combine(LibrariesPath, "avformat.lib"));
 PublicAdditionalLibraries.Add(Path.Combine(LibrariesPath, "avutil.lib"));
 PublicAdditionalLibraries.Add(Path.Combine(LibrariesPath, "swresample.lib"));
 PublicAdditionalLibraries.Add(Path.Combine(LibrariesPath, "swscale.lib"));

 PublicDelayLoadDLLs.Add("avcodec-58.dll");
 PublicDelayLoadDLLs.Add("avformat-58.dll");
 PublicDelayLoadDLLs.Add("avutil-56.dll");
 PublicDelayLoadDLLs.Add("swresample-3.dll");
 PublicDelayLoadDLLs.Add("swscale-5.dll");

 if (!Directory.Exists(BinariesPath))
 {
 Directory.CreateDirectory(BinariesPath);
 }

 string[] DllNames = { "avcodec-58.dll", "avformat-58.dll", "avutil-56.dll", "swresample-3.dll", "swscale-5.dll" };
 foreach (string DllName in DllNames)
 {
 string SourcePath = Path.Combine(LibrariesPath, DllName);
 string DestinationPath = Path.Combine(BinariesPath, DllName);

 if (File.Exists(SourcePath))
 {
 File.Copy(SourcePath, DestinationPath, true);
 }
 }

 foreach (string DllName in DllNames)
 {
 RuntimeDependencies.Add(Path.Combine(BinariesPath, DllName));
 }
 }
 else if (Target.Platform == UnrealTargetPlatform.Android)
 {
 // Android 使用的 SO 文件
 string AndroidLibrariesPath = Path.Combine(LibrariesPath, "android", "armeabi-v7a");
 PublicAdditionalLibraries.Add(Path.Combine(AndroidLibrariesPath, "libavcodec.so"));
 PublicAdditionalLibraries.Add(Path.Combine(AndroidLibrariesPath, "libavformat.so"));
 PublicAdditionalLibraries.Add(Path.Combine(AndroidLibrariesPath, "libavutil.so"));
 PublicAdditionalLibraries.Add(Path.Combine(AndroidLibrariesPath, "libswresample.so"));
 PublicAdditionalLibraries.Add(Path.Combine(AndroidLibrariesPath, "libswscale.so"));

 // 这里修改为动态加载 OnlineSubsystemGooglePlay
 DynamicallyLoadedModuleNames.Add("OnlineSubsystemGooglePlay");
 // 可能还需要保留对其他模块的私有依赖
 PrivateDependencyModuleNames.Add("OnlineSubsystem");
 //PrivateDependencyModuleNames.Add("AndroidAdvertising");
 }

 // 其他配置保持不变
 }
}



-
place audio on video using javacv android
27 septembre 2018, par user364943i create video through sequence of images.
5 images video length 10 seconds and audio file length is 4 mints. when i merge audio on video. video length is 4 mints. i want to length to only 10 sec.
if i add and condition in while loop then only images shown but no audio voice
here below is my code.
thanks in advance.private String createMovie() {
folder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
path = folder.getAbsolutePath() + "/Camera";
millis = System.currentTimeMillis();
videoFilePath = path + "/" + "test_sham_" + /*millis +*/ ".3gp";
audioFilePath = path + "/qe.mp3";
finalVideoPath = path + "/" + "test_shamm_" + /*millis +*/ ".3gp";
try {
FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(videoFilePath, 1280, 720);
OpenCVFrameConverter converter = new OpenCVFrameConverter() {
@Override
public Frame convert(Object o) {
return null;
}
@Override
public Object convert(Frame frame) {
return null;
}
};
recorder.setVideoCodec(avcodec.AV_CODEC_ID_MPEG4);
recorder.setVideoBitrate(10 * 1024 * 1024);
recorder.setFrameRate(1);
recorder.setVideoQuality(0);
//recorder.setPixelFormat(avutil.AV_PIX_FMT_YUV420P);
recorder.setFormat("mp4");
recorder.start();
// publishProgress(0);
int time = 2;
int number_images = imagesEncodedList.size();
// number_images = number_images * 2;
for (int i = 0; i < number_images; i++) {
for (int j = 0; j < time; j++) {
// opencv_core.IplImage image = cvLoadImage(path + "/Camera/image" + i + ".jpg");
opencv_core.IplImage image = cvLoadImage(imagesEncodedList.get(i));
Frame frame = converter.convert(image);
recorder.record(frame);
// publishProgress(25*(i+1));
}
}
recorder.stop();
// publishProgress(76);
mergeAudioAndVideo(videoFilePath, audioFilePath, finalVideoPath);
// publishProgress(100);
} catch (Exception e) {
Log.e("problem", "problem", e);
}
return /*videoFilePath; */ finalVideoPath;
}
private boolean mergeAudioAndVideo(String videoPath, String audioPath, String outPut)
throws Exception {
boolean isCreated = true;
File file = new File(videoPath);
if (!file.exists()) {
return false;
}
try {
FrameGrabber grabber1 = new FFmpegFrameGrabber(videoPath);
FrameGrabber grabber2 = new FFmpegFrameGrabber(audioPath);
grabber1.start();
grabber2.start();
FrameRecorder recorder = new FFmpegFrameRecorder(outPut, grabber1.getImageWidth(), grabber1.getImageHeight(), grabber2.getAudioChannels());
recorder.setFrameRate(grabber1.getFrameRate());
recorder.setFormat("mp4");
// recorder.setSampleFormat(grabber2.getSampleFormat());
recorder.setSampleRate(grabber2.getSampleRate());
recorder.start();
Frame frame1, frame2 = null;
while ((frame1 = grabber1.grabFrame()) != null
|| (frame2 = grabber2.grabFrame()) != null) {
recorder.record(frame1);
recorder.record(frame2);
}
recorder.stop();
grabber1.stop();
grabber2.stop();
} catch (Exception e) {
e.printStackTrace();
}
return isCreated;
} -
fate/all : fix multiple dependencies
30 juin, par Nicolas Gaullierfate/all : fix multiple dependencies
Signed-off-by : Nicolas Gaullier <nicolas.gaullier@cji.paris>
Signed-off-by : Michael Niedermayer <michael@niedermayer.cc>- [DH] tests/fate/api.mak
- [DH] tests/fate/cbs.mak
- [DH] tests/fate/ffmpeg.mak
- [DH] tests/fate/filter-audio.mak
- [DH] tests/fate/filter-video.mak
- [DH] tests/fate/fits.mak
- [DH] tests/fate/gif.mak
- [DH] tests/fate/h264.mak
- [DH] tests/fate/image.mak
- [DH] tests/fate/libavformat.mak
- [DH] tests/fate/matroska.mak
- [DH] tests/fate/ogg-flac.mak
- [DH] tests/fate/pixfmt.mak
- [DH] tests/fate/segment.mak
- [DH] tests/fate/vcodec.mak
- [DH] tests/fate/video.mak
- [DH] tests/fate/voice.mak
- [DH] tests/fate/xvid.mak