
Recherche avancée
Autres articles (30)
-
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" (...) -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir
Sur d’autres sites (5581)
-
How Much H.264 In Each Encoder ?
8 septembre 2010, par Multimedia Mike — GeneralThanks to my recent experiments with code coverage tools, I have a powerful new — admittedly somewhat specious — method of comparing programs. For example, I am certain that I have read on more than one occasion that Apple’s H.264 encoder sucks compared to x264 due, at least in part, to the Apple encoder’s alleged inability to exercise all of H.264′s features. I wonder how to test that claim ?
Experiment
Use code coverage tools to determine which H.264 encoder uses the most features.Assumptions
- Movie trailers hosted by Apple will all be encoded with the same settings using Apple’s encoder.
- Similarly, Yahoo’s movie trailers will be encoded with consistent settings using an unknown encoder.
- Encoding a video using FFmpeg’s libx264-slow setting will necessarily throw a bunch of H.264′s features into the mix (I really don’t think this assumption holds much water, but I also don’t know what “standard” x264 settings are).
Methodology
- Grab a random Apple-hosted 1080p movie trailer and random Yahoo-hosted 1080p movie trailer from Dave’s Trailer Page.
- Use libx264/FFmpeg with the ‘slow’ preset to encode Big Buck Bunny 1080p from raw PNG files.
- Build FFmpeg with code coverage enabled.
- Decode each file to raw YUV, ignore audio decoding, generate code coverage statistics using gcovr, reset stats after each run by deleting *.gcda files.
Results
- x264 1080p video : 9968 / 134203 lines
- Apple 1080p trailer : 9968 / 134203 lines
- Yahoo 1080p trailer : 9914 / 134203 lines
I also ran this old x264-encoded file (ImperishableNightStage6Low.mp4) through the same test. It demonstrated the most code coverage with 10671 / 134203 lines.
Conclusions
Conclusions ? Ha ! Go ahead and jump all over this test. I’m already fairly confident that it’s impossible (or maybe just very difficult) to build a single H.264-encoded video that exercises every feature that FFmpeg’s decoder supports. For example, is it possible for a file to use both CABAC and CAVLC entropy methods ? If it’s possible, does any current encoder do that ? -
ffmpeg/libav - how to wirte video files with valid pts
9 mai 2017, par Kai RohmerI’m currently trying the write out a real time rendered video into a h264 encoded file. After reading a lot of (mostly) old samples and the few class references they call a documentation, I manager to write my video file and I’m also able to read it. Unfortunately, I need some metadata for each frame but I’m not having a constant frame rate. So my intension was to start with the presentation timestamps to "frametime" during recoding. But after all I tried I get no pts while reading the the file (pts stays -9223372036854775808). Before wring a lot of code, here are the basics steps I’m doing. I’m probably using the wrong container or I’m missing to set a flag and you will notice it right away.
// open a AVFormatContext
avformat_alloc_output_context2(&m_FormatContext, nullptr, "avi", m_FileName.c_str());
// open a stream
m_VideoStream = avformat_new_stream(m_FormatContext, avcodec_find_encoder(AV_CODEC_ID_H264));
// setup the codec context (including bitrate, frame size, ...)
m_CodecContext = m_VideoStream ->codec;
m_CodecContext->coder_type = FF_CODER_TYPE_VLC;
m_CodecContext->time_base = AVRational{1, 120}; // I expect 20-60 Hz
m_CodecContext->pix_fmt = AV_PIX_FMT_YUV420P;
m_CodecContext->color_range = AVCOL_RANGE_JPEG;
...
av_opt_set(m_CodecContext->priv_data, "preset", "ultrafast", 0);
av_opt_set(m_CodecContext->priv_data, "tune", "zerolatency,fastdecode", 0);
// set the same time_base to the stream
m_VideoStream ->time_base = m_CodecContext->time_base;
// open the codec
avcodec_open2(m_CodecContext, m_CodecContext->codec, nullptr);
// open file and write header
avio_open(&m_FormatContext->pb, m_FileName.c_str(), AVIO_FLAG_WRITE);
avformat_write_header(m_FormatContext, nullptr);
// then in a loop:
// render frame, convert RGBA to YUV frame, set the frames pts (timestamp is double application time in seconds)
frameToEncode.pts = int64_t(timestamp / av_q2d(m_VideoStream->time_base));
av_init_packet(m_EncodedPacket);
avcodec_encode_video2(m_CodecContext, m_EncodedPacket, frameToEncode, &got_output);
// check packet infos
//m_EncodedPacket->pts equals frameToEncode.pts
m_EncodedPacket->dts = AV_NOPTS_VALUE; // also tried incrementing numbers, or zero
m_EncodedPacket->stream_index = m_Stream->index;
m_EncodedPacket->duration = 0;
m_EncodedPacket->pos = -1;
m_EncodedPacket->flags = 0;
m_EncodedPacket->flags |= AV_PKT_FLAG_KEY; // read that somewhere
// write the packet to stream
av_interleaved_write_frame(m_FormatContext, m_EncodedPacket);
// after the loop
// I encode delayed frames and write the trailer
av_write_trailer(m_FormatContext);Thats pretty much it. I’m not getting what is missing. Since I have some meta data per frame I tried to add side data to each package but this data also disapered after reading from file. If decode the packets directly (instead of writing them to file, the data is there)
I’m quite sure the problem is with the encoding. I managed to decode the big buck bunny movie in which case i got valid pts values.
Thanks a lot for your help !
-
How to track Google AdWords campaigns with Piwik
19 décembre 2017, par InnoCraftIn 2016, Google AdWords was the most popular ad service on earth. As a result, it may be your first source for ad spending. Are you interested in knowing whether you are making a profit out of it ? Would you like to know how to track users coming from AdWords with Piwik efficiently ? This is what this article is about.
What you need to know about Google AdWords
By default, each ad you create in Google AdWords is not tracked. Even worse than that, every click on your ad is identified in Piwik as an organic result coming from Google with the following value : “Keyword not defined”.
To make it simple, if you do not track your AdWords campaigns both your paid and organic traffic will be biased within your Piwik account. It will be impossible for you to measure your return on investment and it means that you are throwing your money down the drain.
In order to avoid this, we will show you how to track Google AdWords traffic into Piwik.
How to track paid Google AdWords campaigns into Piwik
If you want to analyze Google AdWords campaigns within Piwik properly, you need to add additional tracking parameters to the final URL of each of your ads.
We recommend using the following tool to add the needed additional tracking parameters : https://piwik.org/docs/tracking-campaigns-url-builder/
You will then be able to push additional data to Piwik such as :
- pk_campaign : the name of your ad campaign
- pk_kwd : the keyword associated to this campaign
- pk_source : the source of your campaign
- pk_medium : the type of source, in our case either cpc, cpm, cpa
- pk_content : the content of your ad
If your campaign URL looks like this :
https://your-website.com/
, your campaign URL will then look like this after adding the campaign parameters :https://your-website.com/?pk_campaign=Name-Of-Your-Campaign&pk_kwd=Your-Keyword&pk_source=google&pk_medium=cpc&pk_content=My-Ad-Headline
As each ad URL can be fired by different keywords and can correspond to different campaigns or headlines, you will need to customize the campaign parameters for each URL.
Customizing all of your URLs individually would take you a lot of time under circumstances. That’s why you should know, that each URL parameter can be filled automatically in AdWords with a feature called “Tracking template”.
Simplifying the campaign URL parameters with tracking templates
You can define tracking templates either at the account, campaign or ad group level. For example, by using a tracking template at the account level, all your campaigns will have the same landing page with the URL parameters you defined in the tracking template. By defining it at the campaign level, it means that all your ad groups within the campaign will have the same landing page and so on and so forth. Any tracking template defined in a campaign, will overwrite a tracking template defined at the account level.
Tracking template at the account level
To edit the template at the account level, you need to click on “Settings”, then click on the “Account” settings tab and define your tracking template pattern. For example :
https://your-website.com/?url={lpurl}&pk_campaign=AdWords&pk_kwd=Your-Keyword&pk_source=google&pk_medium=cpc&pk_content=My-Ad-Headline
This will apply to all your URLs within your account. So it is only useful if your website domain is the same across all your ads. The URL parameter is compulsory here.
It can be limiting to have a static value for “pk_campaign” and “pk_kwd” so Google allows you to use dynamic insertion, such as follows :
https://your-landing-page.com/?url={lpurl}&pk_campaign={campaignid}&pk_kwd={keyword}&pk_source=google&pk_medium=cpc&pk_content={creative}
The “keyword” means that the data is automatically replaced with the keyword which fired the ad within your account.
Visit the following page if you want to know more about the different dynamic tags that AdWords supports : https://support.google.com/adwords/answer/6305348#urlinsertion
Tracking template at the campaign level
If you wish to define a tracking template at the campaign level, you will find this option within the “Campaign” settings under the campaign URL options :
Tracking template at the Ad Group level
You can also set it at the Ad Group level within the “Ad Group” settings :
As Google mentions : “If you set up URL options at the campaign level, ad group level, or ad level, those settings will override the account-level options“.
Now that your URLs are properly configured, you will be able to analyze AdWords traffic performances within Piwik once a click is coming from those sources.
Did you like this article ? If yes, do not hesitate to share it or give us your feedback about the topic you would like us to write about.