
Recherche avancée
Autres articles (79)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
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 (9684)
-
FFmpeg raw video size parameter
3 novembre 2019, par Yanick SalzmannI am using libavformat in my library to read a stream of raw i420 images and transform them into an mp4 video. I’ve found CLI commands that perform this but since I am using the library in my program I need to reconstruct the same thing.
Currently the code that is having a problem is looking like this :
const auto raw_format = av_find_input_format("rawvideo");
if (raw_format == nullptr) {
log->error("Could not find RAW input parser in FFmpeg");
throw std::runtime_error("RAW not found");
}
_format_context->pb = _io_context.get();
AVDictionary *input_options = nullptr;
av_dict_set(&input_options, "framerate", std::to_string(fps).c_str(), 0);
av_dict_set(&input_options, "pix_fmt", "yuv420p", 0);
av_dict_set(&input_options, "s:v", fmt::format("{}x{}", width, height).c_str(), 0);
av_dict_set(&input_options, "size", fmt::format("{}x{}", width, height).c_str(), 0);
auto formatPtr = _format_context.get();
auto res = avformat_open_input(&formatPtr, "(memory file)", raw_format, &input_options);Finding the
rawvideo
is no problem, but it fails inavformat_open_input
with the error :[2019-11-03 15:03:22.953] [11599:11663] [ffmpeg] [error] Picture size 0x0 is invalid
I assumed the sizes are something I can insert using the input options, since in the CLI version it is passed using
-s:v 1920x1080
, however this does not seem to be true.Where do I have to specify the dimensions of my raw input stream ?
-
ffmpeg : precisely cut a video
19 octobre 2019, par Santhosh YedidiI am tring to cut a video in linux OS
$ ffmpeg -i dhol.mkv
ffmpeg version n4.1.2 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8.2.1 (GCC) 20181127
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, matroska,webm, from 'dhol.mkv':
Metadata:
ENCODER : Lavf58.20.100
Duration: 00:03:56.18, start: -0.007000, bitrate: 2688 kb/s
Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv, bt709/unknown/unknown), 1920x1080, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
Metadata:
DURATION : 00:03:56.167000000
Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
Metadata:
DURATION : 00:03:56.181000000I was trying to precisely cut the video file :
But using ffmpeg I was not successfull. It cuts from the nearest key frames to the given start time
ffmpeg -y -i dhol.mkv -ss $shift -t $duration -c:v copy -an output.mkv
ONE OF THE REASONS HERE IS H.264 Video format (YUV420p vs YUV420sp). I am using
-c:v copy
so it has to use the same format YUV420p, so it has to start from nearest keyframeNow the only reliable software that i can fully depend if avidemux.
Even in that i have to select
video-codec: MJPEG
audio-codec: vorbisBut the cut video size will be large.
I tried in avidemux
video-codec: copy
audio-codec: copyIt will cut from nearest keyframe than precisely.
One conclusion :
So irrespective offfmpeg
oravidemux
, the output video formatyuv420p
will not allow precise formattingOnly option currently possible :
Using avidemux and with
video-codec: MJPEG
audio-codec: vorbisCons :
1) bigger video size.
2) no proper command line examples available for avidemux to do the same as gui doesI tried command line in avidemux :
avidemux3_cli --video-codec MJPEG --audio-codec AAC --output-format AVI --load dhol.mkv --begin 137.633 --end 141.334 --save dhol2.mkv
It tries to convert the whole file rather than from the start to end time
My requirement :
I want to do it command line.I didnt try with ffmpeg (with video codec : MJPEG and audio : vorbis). I never saw any example
How to precisely cut a video (even the output format can be different (like MJPEG instead of yuv420p, and also bigger sizes, its ok) using command line
-
ffmpeg faild when processing video from stream
17 octobre 2019, par MilouselI create ffmpeg method for modify video from readstream as input. I test it on videos which I download from internet and it’s works good. When I tried it on video from my phone it crash. I tried to modify (take off few second) video from internet and try it again, but I receive the same error message.
an error happened: ffmpeg exited with code 1: pipe:0: Invalid data found when processing input
Cannot determine format of input stream 0:0 after EOF
Error marking filters as finished
Conversion failed!
ffmpeg version N-92722-gf22fcd4483 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 8.2.1 (GCC) 20181201
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil 56. 24.101 / 56. 24.101
libavcodec 58. 42.102 / 58. 42.102
libavformat 58. 24.101 / 58. 24.101
libavdevice 58. 6.101 / 58. 6.101
libavfilter 7. 46.101 / 7. 46.101
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001c49b5ee3c0] stream 0, offset 0x20: partial file
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001c49b5ee3c0] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none(tv, bt709), 1920x1080, 17079 kb/s): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'pipe:0':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2019-10-17T11:32:34.000000Z
location : +50.1308+014.3730/
location-eng : +50.1308+014.3730/
com.android.version: 7.0
Duration: 00:00:10.77, start: 0.000000, bitrate: N/A
Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), none(tv, bt709), 1920x1080, 17079 kb/s, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 90k tbn, 180k tbc (default)
Metadata:
rotate : 90
creation_time : 2019-10-17T11:32:34.000000Z
handler_name : VideoHandle
Side data:
displaymatrix: rotation of -90.00 degrees
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
creation_time : 2019-10-17T11:32:34.000000Z
handler_name : SoundHandle
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac (native) -> mp3 (libmp3lame))
Stream #0:0 -> #1:0 (h264 (native) -> mjpeg (native))
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001c49b5ee3c0] stream 0, offset 0x20: partial file
pipe:0: Invalid data found when processing input
Cannot determine format of input stream 0:0 after EOF
Error marking filters as finished
Conversion failed!ffmpeg(stream)
.outputOptions('-movflags', 'faststart')
// .size('1320x438')
.videoCodec('libx264')
.toFormat('avi')
.output(fileName)
.on('error', function(err: { message: string; }, stdout: any, stderr: any) {
console.log('an error happened: ' + err.message + stdout + stderr);
})
.on('end', function() {
console.log('Finished processing video');
const params = {
Body: fs.createReadStream(fileName),
Bucket: videoBucket,
Key: 'test/modification/' + fileName,
};
s3.putObject(params, (err, data) => {
if (err) {
console.log(err);
}
});
})
.output(screensName + '.jpg')
.outputOptions(
'-frames',
'1', // Capture just one frame of the video
'-vf',
'blackdetect=d=2:pix_th=0.00',
)
.on('end', function() {
console.log('Finished processing screenshot');
const params = {
Body: fs.createReadStream(screensName + '.jpg'),
Bucket: videoBucket,
Key: 'test/shots/' + screensName + '.jpg',
};
s3.putObject(params, (err, data) => {
if (err) {
console.log(err);
}
});
})
.run();