
Recherche avancée
Autres articles (103)
-
List of compatible distributions
26 avril 2011, parThe table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...) -
D’autres logiciels intéressants
12 avril 2011, parOn ne revendique pas d’être les seuls à faire ce que l’on fait ... et on ne revendique surtout pas d’être les meilleurs non plus ... Ce que l’on fait, on essaie juste de le faire bien, et de mieux en mieux...
La liste suivante correspond à des logiciels qui tendent peu ou prou à faire comme MediaSPIP ou que MediaSPIP tente peu ou prou à faire pareil, peu importe ...
On ne les connais pas, on ne les a pas essayé, mais vous pouvez peut être y jeter un coup d’oeil.
Videopress
Site Internet : (...) -
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...)
Sur d’autres sites (6507)
-
ffmpeg - Determine what parameters
27 juin 2018, par AdmiralJonBI’ve got a video file that I’m trying to determine what parameters I can use to reproduce the encoding with ffmpeg.
Here’s the ffprobe of the particular stream in question.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4': Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.51.107
Duration: 00:05:02.84, start: 0.000000, bitrate: 4324 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuvj420p(pc, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 4323 kb/s, 25 fps, 25 tbr, 1200k tbn, 2400k tbc (default)
Metadata:
handler_name : VideoHandlerThe key part is that I’m noticing that the bitrate is quite low at 4324 kb/s, but this is actually an incredibly high quality video. To approach this sort of quality, I’ve only been able to make videos at 40000 kb/s (which is a huge increase in filesize). I also notice that it mentions yuvj420p which is an image format, but I have no idea what parameters with ffmpeg could produce that image format (if this at all would make a difference).
Would appreciate any help I can get.
Edit :
Here’s the output based on the comment below :
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=Main
codec_type=video
codec_time_base=123187/3701760
codec_tag_string=avc1
codec_tag=0x31637661
width=1920
height=1080
coded_width=1920
coded_height=1080
has_b_frames=0
sample_aspect_ratio=1:1
display_aspect_ratio=16:9
pix_fmt=yuvj420p
level=41
color_range=pc
color_space=bt709
color_transfer=bt709
color_primaries=bt709
chroma_location=center
field_order=unknown
timecode=N/A
refs=1
is_avc=true
nal_length_size=4
id=N/A
r_frame_rate=15/1
avg_frame_rate=1850880/123187
time_base=1/15360
start_pts=0
start_time=0.000000
duration_ts=246374
duration=16.039974
bit_rate=13795677
max_bit_rate=N/A
bits_per_raw_sample=8
nb_frames=241
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
TAG:language=und
TAG:handler_name=VideoHandler
[/STREAM]Edit 2 :
Here’s information from mediainfo
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L4.1
Format settings, CABAC : Yes
Format settings, RefFrames : 1 frame
Format settings, GOP : M=1, N=32
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 5 min 2 s
Bit rate : 4 323 kb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 25.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.083
Stream size : 156 MiB (100%)
Color range : Full
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709 -
gstreamer : Internal data error, in appsink "pull-sample" mode
9 mai 2018, par Amir RazaI am getting Internal data error, in appsink .
My application is to read .yuv data , encode and write to a buffer.I have accomplished the writing it file but when i changed the code to write it buffer it giving error.
Its only able to write only single packet (188bytes).Output of program :
(ConsoleApplication6.exe:14432): GStreamer-WARNING **: Failed to load plugin 'C:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstopenh264.dll': 'C:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstopenh264.dll': The specified procedure could not be found.
pipeline: filesrc location=Transformers1080p.yuv blocksize=4147200 ! videoparse width=1920 height=1080 framerate=60/1 ! videoconvert ! video/x-raw,format=I420,width=1920,height=1080,framerate=60/1 ! x264enc ! mpegtsmux ! queue ! appsink name = sink
Now playing: Transformers1080p.yuv
Running...
on_new_sample_from_sink
sample got of size = 188
Error: Internal data stream error.
Returned, stopping playback
Deleting pipelinemy code :
#define _CRT_SECURE_NO_WARNINGS 1
//#pragma warning(disable:4996)
#include <gst></gst>gst.h>
#include <gst></gst>audio/audio.h>
#include <gst></gst>app/gstappsrc.h>
#include <gst></gst>base/gstpushsrc.h>
#include <gst></gst>app/gstappsink.h>
#include <gst></gst>video/video.h>
#include <gst></gst>video/gstvideometa.h>
#include <gst></gst>video/video-overlay-composition.h>
#include
#include
#include
#include
using namespace std;
GstElement *SinkBuff;
char *out_file_path;
FILE *out_file;
//gst-launch-1.0.exe -v filesrc location=Transformers1080p.yuv blocksize=4147200 !
//videoconvert ! video/x-raw,format=I420,width=1920,height=1080,framerate=60/1 !
//openh264enc ! mpegtsmux ! filesink location=final.ts
static gboolean bus_call(GstBus *bus, GstMessage *msg, gpointer data)
{
GMainLoop *loop = (GMainLoop *)data;
switch (GST_MESSAGE_TYPE(msg))
{
case GST_MESSAGE_EOS:
g_print("End of stream\n");
g_main_loop_quit(loop);
break;
case GST_MESSAGE_ERROR:
{
gchar *debug;
GError *error;
gst_message_parse_error(msg, &error, &debug);
g_free(debug);
g_printerr("Error: %s\n", error->message);
g_error_free(error);
g_main_loop_quit(loop);
break;
}
default:
break;
}
return TRUE;
}
/* called when the appsink notifies us that there is a new buffer ready for
* processing */
static void on_new_sample_from_sink(GstElement * elt, void *ptr)
{
guint size;
GstBuffer *app_buffer, *buffer;
GstElement *source;
GstMapInfo map = { 0 };
GstSample *sample;
static GstClockTime timestamp = 0;
printf("\n on_new_sample_from_sink \n ");
/* get the buffer from appsink */
g_signal_emit_by_name(SinkBuff, "pull-sample", &sample, NULL);
if (sample)
{
buffer = gst_sample_get_buffer(sample);
gst_buffer_map(buffer, &map, GST_MAP_READ);
printf("\n sample got of size = %d \n", map.size);
//Buffer
fwrite((char *)map.data, 1, sizeof(map.size), out_file);
gst_buffer_unmap(buffer, &map);
gst_sample_unref(sample);
}
}
int main(int argc, char *argv[])
{
GMainLoop *loop;
int width, height;
GstElement *pipeline;
GError *error = NULL;
GstBus *bus;
char pipeline_desc[1024];
out_file = fopen("output.ts", "wb");
/* Initialisation */
gst_init(&argc, &argv);
// Create gstreamer loop
loop = g_main_loop_new(NULL, FALSE);
sprintf(
pipeline_desc,
" filesrc location=Transformers1080p.yuv blocksize=4147200 !"
" videoparse width=1920 height=1080 framerate=60/1 !"
" videoconvert ! video/x-raw,format=I420,width=1920,height=1080,framerate=60/1 ! "
//" x264enc ! mpegtsmux ! filesink location=final.ts");
" x264enc ! mpegtsmux ! queue ! appsink name = sink");
printf("pipeline: %s\n", pipeline_desc);
/* Create gstreamer elements */
pipeline = gst_parse_launch(pipeline_desc, &error);
/* TODO: Handle recoverable errors. */
if (!pipeline) {
g_printerr("Pipeline could not be created. Exiting.\n");
return -1;
}
/* get sink */
SinkBuff = gst_bin_get_by_name(GST_BIN(pipeline), "sink");
g_object_set(G_OBJECT(SinkBuff), "emit-signals", TRUE, "sync", FALSE, NULL);
g_signal_connect(SinkBuff, "new-sample", G_CALLBACK(on_new_sample_from_sink), NULL);
/* Set up the pipeline */
/* we add a message handler */
bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline));
gst_bus_add_watch(bus, bus_call, loop);
gst_object_unref(bus);
/* Set the pipeline to "playing" state*/
g_print("Now playing: Transformers1080p.yuv \n");
gst_element_set_state(pipeline, GST_STATE_PLAYING);
/* Iterate */
g_print("Running...\n");
g_main_loop_run(loop);
/* Out of the main loop, clean up nicely */
g_print("Returned, stopping playback\n");
gst_element_set_state(pipeline, GST_STATE_NULL);
g_print("Deleting pipeline\n");
gst_object_unref(GST_OBJECT(pipeline));
fclose(out_file);
g_main_loop_unref(loop);
return 0;
} -
youtube-dl - How do I ensure that the "original" video formats are downloaded ?
25 juin 2018, par SchytheronI am building a C# GUI (Windows only) for youtube-dl where I allow the user to pick the desired video quality and framerate but I am having problems with format selection. youtube-dl sometimes downloads either the wrong video file or the wrong audio file (often it is audio) and after merging them I end up with a .mkv file because according to FFmpeg the files I am trying to merge are incompatible.
These are the format selection queries I have tried to far :
bestvideo[height<=?%height%][fps<=?%fps%]+bestaudio/best
and
public string[] qualities = { "4320", "2160", "1440", "1080", "720", "480", "360", "240", "144" };
public string[] framerates = { "60", "50", "48", "30", "24" };
private void buildFormat(int qualSkip,int fpsSkip)
{
string[] qualitiesMin = qualities.Skip(qualSkip).ToArray();
string[] frameratesMin = framerates.Skip(fpsSkip).ToArray();
format = "-f ";
foreach (string quality in qualitiesMin)
{
foreach (string framerate in frameratesMin)
{
format += "bestvideo[height=?" + quality + "][fps=?" + framerate + "]+bestaudio/";
}
}
format += "best";
}In the first one I had a problem where on some videos youtube-dl downloaded a video in a lower framerate than what I requested (for example, if I request 1080p60FPS I get 1080p30FPS). I tried to fix this in the second method by searching for the best video for all qualities and framerates that are equal to or lower than the one I picked (for example, if I pick 1080p60FPS it would look for videos from 1080p60->1080p30->720p60->720p30->...->144p30).
The second method however looks overly convoluted and stupid and another problem still remains. youtube-dl always picks the best audio quality no matter what video quality I choose. I want the audio quality to scale with the video quality (for example, if I pick 144p I want poor audio quality). There has got to be a better way.
Maybe I am explaining this poorly but I basically want youtube-dl to ALWAYS (consistently) download the exact same video and audio format as the one that is displayed in the youtube video player itself for each picked video quality (see image below). How do I do that ?
Example 1, Video and audio format codes of video in 4K (the numbers in the red circles are the format codes) :
Example 2, Video and audio format of same video but this time in 720p :
(should also pick a lower framerate video of same quality if that framerate is not available in the YouTube quality selector, for example 1080p30FPS in a 1080p60FPS video)
Thanks !