
Recherche avancée
Médias (1)
-
Carte de Schillerkiez
13 mai 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Texte
Autres articles (107)
-
Diogene : création de masques spécifiques de formulaires d’édition de contenus
26 octobre 2010, parDiogene est un des plugins ? SPIP activé par défaut (extension) lors de l’initialisation de MediaSPIP.
A quoi sert ce plugin
Création de masques de formulaires
Le plugin Diogène permet de créer des masques de formulaires spécifiques par secteur sur les trois objets spécifiques SPIP que sont : les articles ; les rubriques ; les sites
Il permet ainsi de définir en fonction d’un secteur particulier, un masque de formulaire par objet, ajoutant ou enlevant ainsi des champs afin de rendre le formulaire (...) -
Gestion des droits de création et d’édition des objets
8 février 2011, parPar défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)
Sur d’autres sites (9047)
-
Video capturing in portrait mode but the orientation is wrong when played back with a media player
17 octobre 2016, par Ahmed MujtabaI’m trying to make a custom video app. The app captures a video using mediarecorder and uploads it to the website where it’s played on a html5 media player. The issue is that, when I capture the video in portrait mode, the playback video on the website and on vlc player have it’s orientation off by 90 degrees. I have tried various solution on the internet but none work for me.
Here’s what my code for setting up the media recorder :
private bool prepareMediaRecorder() {
Android.Hardware.Camera.Parameters p = mCamera.GetParameters();
List previewSizes = p.SupportedPreviewSizes.ToList();
//mCamera = GetCameraInstance();
//setCameraDisplayOrientation(Activity, cameraId, mCamera);
mediaRecorder = new MediaRecorder();
mCamera.Unlock();
mediaRecorder.SetCamera(mCamera);
mediaRecorder.SetAudioSource(AudioSource.Camcorder);
mediaRecorder.SetVideoSource(VideoSource.Camera);
mediaRecorder.SetOrientationHint(CameraS.result);
if (currentapiVersion >= 16)
{
mediaRecorder.SetProfile(CamcorderProfile.Get(CamcorderQuality.High)); // requires API Level 8 or higher
}
else
{
mediaRecorder.SetProfile(CamcorderProfile.Get(CamcorderQuality.Q480p)); // requires API Level 8 or higher
}
//mediaRecorder.SetVideoFrameRate(30);
mediaRecorder.SetOutputFile(localPath);
mediaRecorder.SetMaxDuration(600000); // Set max duration 60 sec.
mediaRecorder.SetMaxFileSize(50000000); // Set max file size 50M
mediaRecorder.SetVideoSize(previewSizes[0].Width, previewSizes[0].Height);
mediaRecorder.SetPreviewDisplay(mPreview.Holder.Surface);
mediaRecorder.SetOrientationHint(getDisplayOrientationAngle());
try
{
mediaRecorder.Prepare();
}
catch (IllegalStateException e)
{
releaseMediaRecorder();
return false;
}
catch (Java.IO.IOException e)
{
releaseMediaRecorder();
return false;
}
return true;
}
public int getDisplayOrientationAngle() {
//Log.e("", "setDisplayOrientationAngle is call");
int angle;
var mDisplayRotation = Activity.WindowManager.DefaultDisplay.Rotation;
// switch (MeasurementNativeActivity.DisplayRotation) {
switch (mDisplayRotation)
{
case SurfaceOrientation.Rotation0: // This is display orientation
angle = 90; // This is camera orientation
break;
case SurfaceOrientation.Rotation90:
angle = 0;
break;
case SurfaceOrientation.Rotation180:
angle = 270;
break;
case SurfaceOrientation.Rotation270:
angle = 180;
break;
default:
angle = 90;
break;
}
//Log.v("", "media recorder displayRotation: " + mDisplayRotation);
//Log.v("", "media recorder angle: " + angle);
return angle;
}The orientation of the video is fine when played on the phone app but on the website it’s not. I tried to use FFMPEG encoder to rotate the video clockwise. This seemed to fix the orientation of the video, however the aspect ratio of the video is all messed up. The video is stretched vertically and goes off screen.
The command I’m using to rotate and encode the video is as follows :-y -i inputPath -vf scale=640:480,setsar=1,transpose=1 -strict experimental -r 25 -vcodec mpeg4 -b 1000k ab 48000 -ac 2 -ar 22050 destinationPath
I will really appreciate if someone can help me fix either the orientation of the video or the aspect ration after encoding the video.
Cheers !
Edit.
Here’s the readout of the input file :
General
Complete name : C:\Users\Ahmed\Desktop\9adcdb56-500e-4d3f-8fb2-ccf20c680422_yt.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 6.30 MiB
Duration : 12s 437ms
Overall bit rate : 4 251 Kbps
Encoded date : UTC 2016-05-29 23:54:30
Tagged date : UTC 2016-05-29 23:54:30
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Baseline@L3.1
Format settings, CABAC : No
Format settings, ReFrames : 1 frame
Format settings, GOP : M=1, N=31
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 12s 323ms
Bit rate : 3 967 Kbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Rotation : 90°
Frame rate mode : Variable
Frame rate : 29.700 fps
Minimum frame rate : 29.354 fps
Maximum frame rate : 30.040 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.145
Stream size : 5.83 MiB (92%)
Title : VideoHandle
Language : English
Encoded date : UTC 2016-05-29 23:54:30
Tagged date : UTC 2016-05-29 23:54:30
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 12s 437ms
Source duration : 12s 454ms
Bit rate mode : Constant
Bit rate : 128 Kbps
Nominal bit rate : 96.0 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Compression mode : Lossy
Stream size : 194 KiB (3%)
Source stream size : 194 KiB (3%)
Title : SoundHandle
Language : English
Encoded date : UTC 2016-05-29 23:54:30
Tagged date : UTC 2016-05-29 23:54:30
mdhd_Duration : 12454 -
FFMPEG fixing broken or wrong video containers extensions
16 juin 2016, par C0nw0nkWith ffmpeg what is the correct way to fix incorrect file containers.
For example :
We have a input.avi file but the file should be called input.mp4 because the person who uploaded it has renamed it from .mp4 to .avi will ffmpeg’s copy command fix this for us and allow the input.avi to keep its .avi file extension or will it need to become .mp4
Command Line :
ffmpeg.exe -y -i input.avi -c:v copy -c:a copy output-fixed.avi
I read that ffmpeg’s stream copy -c:v copy -c:a copy or -vcodec copy -acodec copy or -c copy command should fix any error with any video container.
I just want to fix the file by keeping it in the original file extension it was provided in do not want to change it to be .mp4 if it was not uploaded with that extension.
-
FFMpeg libswscale XBGR32 to NV12 almost working but colors are wrong
12 juin 2016, par PhilBotI am getting a Linx DMA-BUF from the GPU in XBGR32 format and I need to use FFMpeg’s libswscale to convert it on the ARM to NV12.
I’ve been able to almost get it working based on various SO posts and the documentation.
Here is the LCD screen that is the actual output of the GPU :
Here is the encoded data from the NV12 frame created by libswscale - it should show the same colors as the screen :
Please note that the pictures were not taken at exactly the same time.
What am I doing wrong ?
Here is the relevant part of my code :
/* Prepare to mmap the GBM BO */
union gbm_bo_handle handleUnion = gbm_bo_get_handle(bo);
struct drm_omap_gem_info req;
req.handle = handleUnion.s32;
ret = drmCommandWriteRead(m_DRMController.fd, DRM_OMAP_GEM_INFO,&req, sizeof(req));
if (ret) {
qDebug() << "drmCommandWriteRead(): Cannot set write/read";
}
// Perform actual memory mapping of GPU output
gpuMmapFrame = (char *)mmap(0, req.size, PROT_READ | PROT_WRITE, MAP_SHARED,m_DRMController.fd, req.offset);
assert(gpuMmapFrame != MAP_FAILED);
// Use ffmpeg to do the SW BGR32 to NV12
static SwsContext *swsCtx = NULL;
int width = RNDTO2( convertWidth );
int height = RNDTO2( convertHeight );
int ystride = RNDTO32 ( width );
int uvstride = RNDTO32 ( width / 2 );
int uvsize = uvstride * ( height / 2 );
void *plane[] = { y, u, u + uvsize, 0 };
int stride[] = { ystride, uvstride, uvstride, 0 };
// Output of GPU is XBGR32
// #define V4L2_PIX_FMT_XBGR32 v4l2_fourcc('X', 'R', '2', '4') /* 32 BGRX-8-8-8-8 */
swsCtx = sws_getCachedContext( swsCtx, convertWidth, convertHeight, AV_PIX_FMT_BGR32, width, height, AV_PIX_FMT_NV12,
SWS_FAST_BILINEAR , NULL, NULL, NULL );
int linesize[1] = { convertWidth * 4 };
const uint8_t *inData[1] = { (uint8_t*)gpuMmapFrame };
if ( gpuMmapFrame ) {
sws_scale( swsCtx, (const uint8_t *const *)inData, linesize, 0, convertHeight, (uint8_t *const *)plane, stride );
}
// Unmap it
munmap(gpuMmapFrame,req.size);
// Now send the frame to the encoder
dce.submitFrameToEncode(swEncodeBufferNV12);