Recherche avancée

Médias (91)

Autres articles (77)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-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 (6968)

  • 7 Benefits Segmentation Examples + How to Get Started

    26 mars 2024, par Erin

    Every copywriter knows the importance of selling a product’s benefits, not its features. So why should your marketing efforts be different ?

    Answer : they shouldn’t.

    It’s time to stop using demographic or behavioural traits to group customers and start using benefits segmentation instead.

    Benefits segmentation groups your customers based on the value they get from your product or service. In this article, we’ll cover seven real-life examples of benefits segmentation, explain why it’s so powerful and show how to get started today.

    What is benefits segmentation ?

    Benefits segmentation is a way for marketers to group their target market based on the value they get from their products or services. It is a form of customer segment marketing. Other types of market segmentation include :

    • Geographic segmentation
    • Demographic segmentation
    • Psychographic segmentation
    • Behavioural segmentation
    • Firmographic segmentation

    Customers could be the same age, from the same industry and live in the same location but want drastically different things from the same product. Some may like the design of your products, others the function, and still more the price. 

    Whatever the benefits, you can make your marketing more effective by building advertising campaigns around them.

    Why use benefits segmentation ?

    Appealing to the perceived benefits of your product is a powerful marketing strategy. Here are the advantages of you benefit segmentation can expect :

    Why use benefits segmentation?

    More effective marketing campaigns

    Identifying different benefits segments lets you create much more targeted marketing campaigns. Rather than appeal to a broad customer base, you can create specific ads and campaigns that speak to a small part of your target audience. 

    These campaigns tend to be much more powerful. Benefits-focused messaging better resonates with your audience, making potential customers more likely to convert.

    Better customer experience 

    Customers use your products for a reason. By showing you understand their needs through benefits segmentation, you deliver a much better customer experience — in terms of messaging and how you develop new products. 

    In today’s world, experience matters. 80% of customers say a company’s experience is as important as its products and services.

    Stronger customer loyalty

    When products or services are highly targeted at potential customers, they are more likely to return. More than one-third (36%) of customers would return to a brand if they had a positive experience, even if cheaper or more convenient alternatives exist.

    Using benefits segmentation will also help you attract the right kind of people in the first place — people who will become long-term customers because your benefits align with their needs. 

    Improved products and services

    Benefits segmentation makes it easier to tailor products or services to your audiences’ wants and needs. 

    Rather than creating a product meant to appeal to everyone but doesn’t fulfil a real need, your team can create different ranges of the same product that target different benefits segments. 

    Higher conversion rates

    Personalising your pitch to individual customers is powerful. It drives performance and creates better outcomes for your target customer. Companies that grow faster drive 40 per cent more revenue from personalisation than their slower-growing counterparts.

    When sales reps understand your product’s benefits, talking to customers about them and demonstrating how the product solves particular pain points is much easier. 

    In short, benefits segmentation can lead to higher conversion rates and a better return on investment. 

    7 examples of benefits segmentation

    Let’s take a look at seven examples of real-life benefits segmentation to improve your understanding :

    Nectar

    Mattress manufacturer Nectar does a great job segmenting their product range by customer benefits. That’s a good thing, given how many different things people want from their mattress. 

    It’s not just a case of targeting back sleepers vs. side sleepers ; they focus on more specific benefits like support and cooling. 

    A screenshot of the Nectar website

    Take a look at the screenshot above. Nectar mentions the benefits of each mattress in multiple places, making it easy for customers to find the perfect mattress. If you care about value, for example, you might choose “The Nectar.” If pressure relief and cooling are important to you, you might pick the “Nectar Premier.”

    24 Hour Fitness

    A gym is a gym is a gym, right ? Not when people use it to achieve different goals, it’s not. And that’s what 24 Hour Fitness exploits when they sell memberships to their audience. 

    As you can see from its sales page, 24 Hour Fitness targets the benefits that different customers get from their products :

    A screenshot of a gym's website

    Customers who just care about getting access to weights and treadmills for as cheap as possible can buy the Silver Membership. 

    But getting fit isn’t the only reason people go to the gym. That’s why 24 Hour Fitness targets its Gold Membership to those who want the “camaraderie” of studio classes led by “expert instructors.”

    Finally, some people value being able to access any club, anywhere in the country. Consumers value flexibility greatly, so 24 Hour Fitness limits this perk to its top-tier membership. 

    Notion

    Notion is an all-in-one productivity and note-taking app that aims to be the only productivity tool people and teams need. Trying to be everything to all people rarely works, however, which is why Notion cleverly tweaks its offering to appeal to the desires of different customer segments :

    A screenshot of Notion's website highlighting benefits

    For price-conscious individuals, it provides a pared solution that doesn’t bloat the user experience with features or benefits these consumers don’t care about.

    The Plus tier is the standard offering for teams who need a way to collaborate online. Still, there are two additional tiers for businesses that target specific benefits only certain teams need. 

    For teams that benefit from a longer history or additional functionality like a bulk export, Notion offers the Business tier at almost double the price of the standard Plus tier. Finally, the Enterprise tier for businesses requires much more advanced security features. 

    Apple

    Apple is another example of a brand that designs and markets products to customers based on specific benefits.

    A screenshot of Apple's website highlighting benefits

    Why doesn’t Apple just make one really good laptop ? Because customers want different things from them. Some want the lightest or smallest laptop possible. Others need ones with higher processing power or larger screens.

    One product can’t possibly deliver all those benefits. So, by understanding the precise reasons people need a laptop, Apple can create and market products around the benefits that are most likely to be sold. 

    Tesla

    In the same way Apple understands that consumers need different things from their laptops, Tesla understands that consumers derive different benefits from their cars. 

    It’s why the company sells four cars (and now a truck) that cover various sizes, top speeds, price points and more. 

    A screenshot of Tesla's website highlighting benefits

    Tesla even asks customers about the benefits they want from their car when helping them to choose a vehicle. By asking customers to pick how they will use their new vehicle, Tesla can ensure the car’s benefits match up to the consumers’ goals. 

    Dynamite Brands

    Dynamite Brands is a multi-brand, community-based business that targets remote entrepreneurs around the globe. But even this heavily niched-down business still needs to create benefit segments to serve its audience better. 

    It’s why the company has built several different brands instead of trying to serve every customer under a single banner :

    A screenshot of Dynamite Brands' website highlighting benefits

    If you just want to meet other like-minded entrepreneurs, you can join the Dynamite Circle, for example. But DC Black might be a better choice if you care more about networking and growing your business.

    It’s the same with the two recruiting brands. Dynamite Jobs targets companies that just want access to a large talent pool. Remote First Recruiting targets businesses that benefit from a more hands-on approach to hiring where a partner does the bulk of the work.

    Garmin

    Do you want your watch to tell the time or do you want it to do more ? If you fall into the latter category, Garmin has designed dozens of watches that target various benefits.

    A screenshot of Garmin's website highlighting benefits

    Do you want a watch that tracks your fitness without looking ugly ? Buy the Venu. 

    Want a watch designed for runners ? Buy the Forerunner. 

    Do you need a watch that can keep pace with your outdoor lifestyle ? Buy the Instinct. 

    Just like Apple, Garmin can’t possibly design a single watch that delivers all these benefits. Instead, each watch is carefully built for the target customer’s needs. Yes, it makes the target market smaller, but it makes the product more appealing to those who care about those benefits.

    How to get started with benefits segmentation

    According to Gartner, 63% of digital marketing leaders struggle with personalisation. Don’t be one of them. Here’s how you can improve your personalisation efforts using benefits segmentation. 

    Research and define benefits

    The first step to getting started with benefit segmentation is understanding all the benefits customers get from your products. 

    You probably already know some of the benefits, but don’t underestimate the importance of customer research. Hold focus groups, survey customers and read customer reviews to discover what customers love about your products. 

    Create benefit-focused customer personas

    Now you understand the benefits, it’s time to create customer personas that reflect them. Group consumers who like similar benefits and see if they have any other similarities. 

    Price-conscious consumers may be younger. Maybe people who care about performance have a certain type of job. The more you can do to flesh out what the average benefits-focused consumer looks like, the easier it will be to create campaigns. 

    Create campaigns focused on each benefit

    Now, we get to the fun part. Make the benefit-focused customer personas you created in the last step the focus of your marketing campaigns going forward. 

    Don’t try to appeal to everyone. Just make your campaigns appeal to these people.

    Go deeper with segmentation analytics

    The quality of your benefit segmentation strategy hinges on the quality of your data. That’s why using a an accurate web analytics solution like Matomo to track how each segment behaves online using segmentation analytics is important.

    Segmentation Analytics is the process of splitting customers into different groups within your analytics software to create more detailed customer data and improve targeting

    This data can make your marketing campaigns more targeted and effective.

    Benefits segmentation in practice

    Let’s say you have an e-commerce website selling a wide range of household items, and you want to create a benefit segment for “Tech Enthusiasts” who are interested in the latest gadgets and cutting-edge technology. You want to track and analyse their behaviour separately to tailor marketing campaigns or website content specifically for this group.

    1. Identify characteristics : Determine key characteristics or behaviours that define the “Tech Enthusiasts” segment. 

    This might include frequent visits to product pages of the latest tech products, site searches that contain different tech product names, engaging with tech-specific content in emails or spending more time on technology-related blog posts.

    One quick and surefire way to identify characteristics of a segment is to look historically at specific tech product purchases in your Matomo and work your way backwards to find out what steps a “Tech Enthusiast” takes before making a purchase. For instance, you might look at User Flows to discover this.

    Behaviour User Flow in Matomo
    1. Create segments in Matomo : Using Matomo’s segmentation features, you can create a segment that includes users exhibiting these characteristics. For instance :
      • Segment by page visits : Create a segment that includes users who visited tech product pages or spent time on tech blogs.
    Segmentation example in Matomo
      • Segment by event tracking : If you’ve set up event tracking for specific actions (like clicking on “New Tech” category buttons), create a segment based on these events.
      • Combine conditions : Combine various conditions (e.g., pages visited, time spent, specific actions taken) to create a comprehensive segment that accurately represents “Tech Enthusiasts.”
    1. Track and analyse : Apply this segment to your analytics data in Matomo to track and analyse the behaviour of this group separately. Monitor metrics like their conversion rates, time spent on site or specific products they engage with.
    2. Tailor marketing : Use the insights from analysing this segment to tailor marketing strategies. This could involve creating targeted campaigns or customising website content to cater specifically to these users.

    Remember, the key is to define criteria that accurately represent the segment you want to target, use Matomo’s segmentation tools to isolate this group, and effectively derive actionable insights to cater to their preferences or needs.

    Try Matomo for Free

    Get the web insights you need, without compromising data accuracy.

    No credit card required

    Track your segmentation efforts 

    Benefits segmentation is a fantastic way to improve your marketing. It can help you deliver a better customer experience, improve your product offering and help your sales reps close more deals. 

    Segmenting your audience with an analytics platform lets you go even deeper. But doing so in a privacy-sensitive way can be difficult. 

    That’s why over 1 million websites choose Matomo as their web analytics solution. Matomo provides exceptional segmentation capabilities while remaining 100% accurate and compliant with global privacy laws.

    Find out how Matomo’s insights can level up your marketing efforts with our 21-day free trial, no credit card required.

  • Introducing the BigQuery & Data Warehouse Export feature

    30 janvier, par Matomo Core Team

    Matomo is built on a simple truth : your data belongs to you, and you should have complete control over it. That’s why we’re excited to launch our new BigQuery & Data Warehouse Export feature for Matomo Cloud, giving you even more ways to work with your analytics data. 

    Until now, getting raw data from Matomo Cloud required APIs and custom scripts, or waiting for engineering help.  

    Our new BigQuery & Data Warehouse Export feature removes those barriers. You can now access your raw, unaggregated data and schedule regular exports straight to your data warehouse. 

    The feature works with all major data warehouses including (but not limited to) : 

    • Google BigQuery 
    • Amazon Redshift 
    • Snowflake 
    • Azure Synapse Analytics 
    • Apache Hive 
    • Teradata 

    You can schedule exports, combine your Matomo data with other data sources in your data warehouse, and easily query data with SQL-like queries. 

    Direct raw data access for greater data portability 

    Waiting for engineering support can delay your work. Managing API connections and writing scripts can be time-consuming. This keeps you from focusing on what you do best—analysing data. 

    BigQuery create-table-menu

    With the BigQuery & Data Warehouse Export feature, you get direct access to your raw Matomo data without the technical setup. So, you can spend more time analysing data and finding insights that matter. 

    Bringing your data together 

    Answering business questions often requires data from multiple sources. A single customer interaction might span your CRM, web analytics, sales systems, and more. Piecing this data together manually is time-consuming—what starts as a seemingly simple question from stakeholders can turn into hours of work collecting and comparing data across different tools. 

    This feature lets you combine your Matomo data with data from other business systems in your data warehouse. Instead of switching between tools or manually comparing spreadsheets, you can analyse all your data in one place to better understand how customers interact with your business. 

    Easy, custom analysis with SQL-like queries 

    Standard, pre-built reports often don’t address the specific, detailed questions that analysts need to answer.  

    When you use the BigQuery & Data Warehouse Export feature, you can use SQL-like queries in your data warehouse to do detailed, customised analysis. This flexibility allows you to explore your data in depth and uncover specific insights that aren’t possible with pre-built reports. 

    Here is an example of how you might use SQL-like query to compare the behaviours of paying vs. non-paying users : 

    				
                                            <xmp>SELECT  

    custom_dimension_value AS user_type, -- Assuming 'user_type' is stored in a custom dimension

    COUNT(*) AS total_visits,  

    AVG(visit_total_time) AS avg_duration,

    SUM(conversion.revenue) AS total_spent  

    FROM  

    `your_project.your_dataset.matomo_log_visit` AS visit

    LEFT JOIN  

    `your_project.your_dataset.matomo_log_conversion` AS conversion  

    ON  

    visit.idvisit = conversion.idvisit  

    GROUP BY  

    custom_dimension_value; </xmp>
                                   

    This query helps you compare metrics such as the number of visits, average session duration, and total amount spent between paying and non-paying users. It provides a full view of behavioural differences between these groups. 

    Advanced data manipulation and visualisation 

    When you need to create detailed reports or dive deep into data analysis, working within the constraints of a fixed user interface (UI) can limit your ability to draw insights. 

    Exporting your Matomo data to a data warehouse like BigQuery provides greater flexibility for in-depth manipulation and advanced visualisations, enabling you to uncover deeper insights and tailor your reports more effectively. 

    Getting started 

    To set up data warehouse exports in your Matomo : 

    1. Go to System Admin (cog icon in the top right corner) 
    2. Select ‘Export’ from the left-hand menu 
    3. Choose ‘BigQuery & Data Warehouse’ 

    You’ll find detailed instructions in our data warehouse exports guide 

    Please note, enabling this feature will cost an additional 10% of your current subscription. You can view the exact cost by following the steps above. 

    New to Matomo ? Start your 21-day free trial now (no credit card required), or request a demo. 

  • Issues with processing media on windows Azure

    23 septembre 2015, par Ahmed Mujtaba

    I have a website built on ASP.NET web forms that works as a media portal for users to upload videos. I’m using ffmpeg encoders to produce video contents to be streamed in the browser. I’m using the web deploy method to publish the site on the Azure server. The website get’s deployed properly however I get following issues in the live site.

    1. Video never get’s encoded and published. I get some sort of error.

    2. Video get’s published but the process of uploading and encoding the video is way too slow on the web server.

    My project solution contains upload.ashx that handles the upload requests and makes the call to encode.ashx which is responsible for the encoding and publishing of the videos. I tried to remotely debug the site but the debugger never get’s to encode.ashx.

    I was wondering if these issues can be resolved by having the website deployed with a VM ?

    Script that uploads the video file :

    var filesuploaded = 0;
       var faileduploaded = 0;

       $(function () {
           var uploader = new plupload.Uploader({
               runtimes: 'gears,html5,flash,silverlight,browserplus',
               browse_button: '&lt;%= pickfiles.ClientID %>',
               container: 'container',
               max_file_size: '&lt;%= MaxMediaSize %>mb',
               url: '&lt;%=Config.GetUrl() %>videos/upload/upload.ashx',
               flash_swf_url: '&lt;%=Config.GetUrl() %>plupload/js/plupload.flash.swf',
               silverlight_xap_url: '&lt;%=Config.GetUrl() %>plupload/js/plupload.silverlight.xap',
               chunk_size: '4mb',
               &lt;%= UniqueNames %>
               filters: [
               { title: '&lt;%= AllowedFormatsDisplay %>', extensions: '&lt;%= AllowedFormats %>'}],
               headers: { UName: '&lt;%=UserName %>', MTP: '&lt;%= MediaType %>' }
           });
           //uploader.bind('Init', function (up, params) {
           //    $('#filelist').html("<div>Current runtime: " + params.runtime + "</div>");
           //});

           uploader.init();

           $('#uploadfiles').click(function (e) {
               uploader.start();
               e.preventDefault();
               $("#uploadfiles").hide();
               $("#&lt;%= embd.ClientID %>").hide();
           });

           uploader.bind('FilesAdded', function (up, files) {
               $("#uploadfiles").show();
               $("#&lt;%= msg.ClientID %>").html("");
               var count=0;
               $.each(files, function (i, file) {
                   $('#filelist').append(
                       '<div class="item_pad_4 bx_br_bt">' + (count + 1) + ': ' + file.name + ' (' + plupload.formatSize(file.size) + ')  <b></b></div>' );
                   count++;
               });
               var maxupload = &lt;%= MaxVideoUploads %>;
               if(count > maxupload)
               {              
                   $.each(files, function(i, file) {
                       uploader.removeFile(file);
                   });

                   $('#filelist').html("");
                   $("#uploadfiles").hide();
                   Display_Message("#&lt;%= msg.ClientID %>", "Can't upload more than " + maxupload + " records at once!", 1, 1);
                   return false;
               }
               else {
                   $("#tfiles").html(count);
                   $("#uploadfiles").removeClass("disabled");
                   $("#&lt;%= pickfiles.ClientID %>").hide();
               }
               up.refresh(); // Reposition Flash/Silverlight
           });

           uploader.bind('UploadProgress', function (up, file) {
               $('#' + file.id + " b").html(file.percent + "%");
           });

           uploader.bind('Error', function (up, err) {
               $('#filelist').append("<div>Error: " + err.code +
                   ", Message: " + err.message +
                   (err.file ? ", File: " + err.file.name : "") +
                   "</div>"
               );
               up.refresh(); // Reposition Flash/Silverlight
           });

           var failedstatus = 0;
           uploader.bind('FileUploaded', function (up, file, info) {
               // encode started
               if (info.response != "failed" &amp;&amp; info.response != "") {
                   EncodeVD(file.id, info.response, file.size);
                   Display_Message('#' + file.id, "Please wait for final processing", 0, 1);
                   if (failedstatus == 0)
                       Redirect(info.response);
                   filesuploaded++;
               }
               else {
                   Display_Message('#' + file.id, "Response is: " + info.response, 0, 1);
               }
           });
       });
       var redcnt = 0;
       function Redirect(filename) {
           var IntervalID = setInterval(function () {
               redcnt++;
               if (redcnt > 2) {
                   clearInterval(IntervalID);
                   var tfiles = $("#tfiles").html();
                   if(tfiles == faileduploaded) { // break further processing all videos failed to upload
                   }
                   else if (filesuploaded >= tfiles) {
                       document.location = "&lt;%=ConfirmPageUrl %>?fn=" + filename + "&amp;gid=&lt;%=GalleryID %>&amp;uvids=" + $("#tfiles").html() + "&amp;mpid=" + $("#maxpid").html().trim() + "&lt;%=GroupParam %>";
                   }
           }
           }, 2000);
    }
    function EncodeVD(mid, mfile, msize) {
       var params = '&lt;%= EncodingParams %>&amp;fn=' + mfile;
           $.ajax({
               type: 'GET',
               url: '&lt;%= Encoding_Handler_Path %>',
               data: params,
               async: true,
               success: function (msg) {
                   if (msg == "Success" || msg == "") {
                       $('#' + mid).html('<strong>Uploading Completed Successfully - Wait for Processing.');
                   }
                   else {
                       failedstatus = 1;
                       faileduploaded++;
                       Display_Message('#' + mid, "Response is: " + msg, 0, 1);
                   }
               }
           });
       }
    </strong>

    Server side code for processing the file upload :

    private int MediaType = 0; // 0 : video, 1: audio

       public void ProcessRequest (HttpContext context) {
           try
           {
               context.Response.ContentType = "text/plain";
               context.Response.Write(ProcessMedia(context));
           }
           catch (Exception ex)
           {
               context.Response.Write("error|" + ex.Message);
           }
       }

       public string ProcessMedia(HttpContext context)
       {
           if (context.Request.Files.Count > 0)
           {
               int chunk = context.Request["chunk"] != null ? int.Parse(context.Request["chunk"]) : 0;
               string fileName = context.Request["name"] != null ? context.Request["name"] : string.Empty;
               //string _fileName = fileName.Remove(fileName.LastIndexOf(".")) + "-" + Guid.NewGuid().ToString().Substring(0, 6) + "" + fileName.Remove(0, fileName.LastIndexOf("."));
               HttpPostedFile fileUpload = context.Request.Files[0];

               string upath = "";
               if (context.Request.Headers["UName"] != null)
                   upath = context.Request.Headers["UName"].ToString();

               //if (CloudSettings.EnableCloudStorage &amp;&amp; upath != "")
               //    _fileName = upath.Substring(0, 3) + "-" + _fileName; // avoid duplication in cloud storage

               if (context.Request.Headers["MTP"] != null)
                   MediaType = Convert.ToInt32(context.Request.Headers["MTP"]);

               //string extensions = "";
               //if (MediaType == 0)
               //    extensions = Site_Settings.Video_Allowed_Formats;
               //else
               //    extensions = Site_Settings.Audio_Allowed_Formats;

               //bool sts = UtilityBLL.Check_File_Extension(extensions, fileName.ToLower());
               //if (sts == false)
               //{
               //    return "Invalid format, please upload proper video!"; // Invalid video format, please upload proper video
               //}

               int allowable_size_mb = 0;
               if (MediaType == 0)
               {
                   allowable_size_mb = Site_Settings.Video_Max_Size;
               }
               else
               {
                   allowable_size_mb = Site_Settings.Audio_Max_Size;
               }
               int UploadSize = allowable_size_mb * 1000000;
               if (fileUpload.ContentLength > UploadSize)
               {
                   return "Video Limit Exceeds";
               }

               string uploadPath = "";
               // check whether audio / mp3 encoding enabled
               if (this.MediaType == 1)
               {
                   // audio encoding
                   if (fileName.EndsWith(".mp3"))
                   {
                       // upload mp3 directly in mp3 path instead of default path
                       if (upath == "")
                           uploadPath = UrlConfig.MP3_Path(); // source video path
                       else
                           uploadPath = UrlConfig.MP3_Path(upath); // source video path
                   }
                   else
                   {
                       // default path
                       if (upath == "")
                           uploadPath = UrlConfig.Source_Video_Path(); // source video path
                       else
                           uploadPath = UrlConfig.Source_Video_Path(upath); // source video path
                   }
               }
               else
               {//azure
                   // default path
                   if (upath == "")
                       uploadPath = UrlConfig.Source_Video_Path(); // source video path
                   else
                       uploadPath = UrlConfig.Source_Video_Path(upath); // source video path
               }

               FileStream fs;
               using (fs = new FileStream(Path.Combine(uploadPath, fileName), chunk == 0 ? FileMode.Create : FileMode.Append))
               {
                   byte[] buffer = new byte[fileUpload.InputStream.Length];
                   fileUpload.InputStream.Read(buffer, 0, buffer.Length);

                   fs.Write(buffer, 0, buffer.Length);
               }
               return fileName; // "Success";
           }
           else
           {
               return "failed";
           }

           return "";
       }
       public bool IsReusable {
           get {
               return false;
           }
       }

    code in encode.aspx responsible for encoding the video :

    private string EncodeMedia(HttpContext context)
    {
       string sourcepath = "";
       string publishedpath = "";
       string mp3path = "";
       string thumbpath = "";
       if (this.UserName != "")
       {//azure
           sourcepath = UrlConfig.Source_Video_Path(this.UserName);
           publishedpath = UrlConfig.Published_Video_Path(this.UserName);
           mp3path = UrlConfig.MP3_Path(this.UserName);
           thumbpath = UrlConfig.Thumbs_Path(this.UserName);
       }
       else
       {
           sourcepath = UrlConfig.Source_Video_Path();
           publishedpath = UrlConfig.Published_Video_Path();
           mp3path = UrlConfig.MP3_Path();
           thumbpath = UrlConfig.Thumbs_Path();
       }
       if (this.FileName.EndsWith(".mp3") &amp;&amp; this.MediaType == 1)
       {
           // mp3 and audio format
           if (!File.Exists(mp3path + "/" + this.FileName))
           {
               return "Audio file not found!";
           }
       }
       else
       {
           // rest normal video and audio encoding
           if (!File.Exists(sourcepath + "/" + this.FileName))
           {
               return "Source file not found!";
           }
       }

       if (CloudSettings.EnableCloudStorage &amp;&amp; this.UserName != "")
           this.FileName = this.UserName.Substring(0, 3) + "-" + this.FileName; // avoid duplication in cloud storage


       //double f_contentlength = 0;
       //if (Site_Settings.Feature_Packages == 1)
       //{
       //    if (Config.GetMembershipAccountUpgradeType() != 1)
       //    {
       //        // Check whether user have enough space to upload content
       //        // Restriction only for normal or premium users
       //        f_contentlength = (double)fileUpload.ContentLength / 1000000;
       //        string media_field_name = "space_video";
       //        if (MediaType == 1)
       //            media_field_name = "space_audio";
       //        if (!User_PackagesBLL.Check_User_Space_Status(upath, media_field_name, f_contentlength) &amp;&amp; !isAdmin)
       //        {
       //            // insufficient credits to upload content
       //            return "Insufficient credits to upload media file"; //   Response.Redirect(Config.GetUrl("myaccount/packages.aspx?status=" + media_field_name), true);
       //        }
       //    }
       //}

       this.backgroundpublishing = true; // should be true on direct encoding
       // Video Processing
       string flv_filename = "";
       string original_filename = "";
       string thumb_filename = "";
       string duration = "";
       int duration_sec = 0;

       // set video actions : 1 -> on, 0 -> off
       int isenabled = 1;
       int ispublished = 1;
       int isreviewed = 1;
       int isresponse = 0;
       if (Response_VideoID > 0)
           isresponse = 1;

       string flv_url = "none";
       string thumb_url = "none";
       string org_url = "none";
       string _embed = "";

       string errorcode = "0";
       VideoInfo info = null;

       if (Site_Settings.Content_Approval == 0)
           isreviewed = 0;


       // check whether audio / mp3 encoding enabled
       if (this.FileName.EndsWith(".mp3") &amp;&amp; this.MediaType==1)
       {
           // audio encoding
           // mp3 file already
           // so no encoding happens
           MediaHandler _minfo = new MediaHandler();
           _minfo.FFMPEGPath = Encoding_Settings.FFMPEGPATH;
           _minfo.FileName = FileName;
           _minfo.InputPath = mp3path;
           info = _minfo.Get_Info();

           flv_filename = FileName;
           original_filename = FileName;
           duration = info.Duration;
           duration_sec = info.Duration_Sec;
           isenabled = 1; // enabled
       }
       else if (this.directpublishing)
       {            

           // publish video
           ArrayList itags = new ArrayList();
           MHPEncoder encoder = new MHPEncoder();
           //if (this.FileName.EndsWith(".mpeg") || this.FileName.EndsWith(".mpg")) // use mpg compatible ffmpeg encoder
           //    encoder.FfmpegPath = HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath) + "\\ffmpeg\\ffmpegbk\\ffmpeg.exe";
               //encoder.ThumbFfmpegPath = Encoding_Settings.FFMPEGPATH; // use normal ffmpeg encoder for thumbs processing

           //azure
           encoder.FfmpegPath = Encoding_Settings.FFMPEGPATH; // use normal ffmpeg encoder
           encoder.FlvToolPath = Encoding_Settings.FLVTOOLPATH; // set meta information for flv videos
           encoder.Mp4BoxPath = Encoding_Settings.MP4BoxPath; // set meta information for mp4 videos
           encoder.SourcePath = sourcepath;
           encoder.SourceFileName = this.FileName;

           // No cloud storage on direct encoding
           //if (CloudSettings.EnableCloudStorage)
           //    encoder.EnableCloudStorage = true;


           if (MediaType == 1)
           {
               // audio encoding
               itags.Add("14");
               encoder.iTags = itags;
               encoder.GrabThumbs = false;
               encoder.PublishedPath = mp3path;

               //_vprocess.OutputPath = this.MP3Path;
               //_vprocess.isAudio = true;
           }
           else
           {
               // video encoding
               itags.Add(EncoderSettings.DefaultITagValue.ToString()); // 5 for 360p mp4 encoding    
               //itags.Add(7);   // this will call 7 case settings to publish next video ending with _7.mp4 instead of _5.mp4
               // so there will be 2 videos with different resoultions published at the end of the process?
               // yesmake sure use proper settings first test it directly via command.    
               //okay i got it. But i'm gonna have to use a different media players to incroporate those settings
               // once published you can load different videos for different user by checking _7.mp4 (end) va
              //okay got it.

               //azure
               encoder.PublishedPath = publishedpath;
               encoder.iTags = itags;
               encoder.ThumbsDirectory = thumbpath;
               encoder.TotalThumbs = 15;

               //_vprocess.ThumbPath = this.ThumbPath;
               //_vprocess.OutputPath = this.FLVPath;
               //if (Config.isPostWaterMark())
               //{
               //    // script for posting watermark on video
               //    _vprocess.WaterMarkPath = Server.MapPath(Request.ApplicationPath) + "\\contents\\watermark";
               //    _vprocess.WaterMarkImage = "watermark.gif";

               //}
           }
           int deleteoption = Site_Settings.Video_Delete_Original;
           if (deleteoption == 1)
           {
               encoder.DeleteSource = true;
           }
           // background processing
           if (this.backgroundpublishing &amp;&amp; this.MediaType==0)
           {
               encoder.BackgroundProcessing = true;
               // get information from source video in order to store it in database
               MediaHandler _minfo = new MediaHandler();
               //if (this.FileName.EndsWith(".mpeg") || this.FileName.EndsWith(".mpg")) // use mpg compatible ffmpeg encoder
               //    encoder.FfmpegPath = HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath) + "\\ffmpeg\\ffmpegbk\\ffmpeg.exe";
               //else
                   _minfo.FFMPEGPath = Encoding_Settings.FFMPEGPATH;

               _minfo.FileName = FileName;
               _minfo.InputPath = sourcepath;
               info = _minfo.Get_Info();
           }
           // encode video processing
           Video_Information vinfo = encoder.Process();
           if (vinfo.ErrorCode > 0)
           {
               errorcode = vinfo.ErrorCode.ToString();
               ErrorLgBLL.Add_Log("Encoding Failed Log", "", "encoding error: " + vinfo.ErrorCode.ToString() + "<br />Description: " + vinfo.ErrorDescription.ToString());
                //return vinfo.ErrorDescription;
           }
           // Double check validation
           // if published video exist
           // if thumb exist
           // then proceed further

           if (MediaType == 0)
           {
               if (!File.Exists(encoder.PublishedPath + "/" + vinfo.FLVVideoName))
               {
                   return "Video failed to published properly.";
               }
               if (!File.Exists(encoder.ThumbsDirectory + "/" + vinfo.ThumbFileName))
               {
                   return "Thumbs failed to grab from video properly.";
               }
           }
           else
           {
               if (vinfo.FLVVideoName == "")
               {
                   vinfo.FLVVideoName = this.FileName.Remove(this.FileName.LastIndexOf(".")) + "_14.mp3"; // mp3 file path name
               }
               if (!File.Exists(encoder.PublishedPath + "/" + vinfo.FLVVideoName))
               {
                   return "Audio failed to published properly.";
               }
           }
           // Now thumbs and video published, procceed for data processing
           // get information from vinfo object
           if (this.backgroundpublishing &amp;&amp; this.MediaType == 0)
           {
               string OutputFileName = this.FileName.Remove(this.FileName.LastIndexOf("."));
               flv_filename = OutputFileName + "_" + EncoderSettings.DefaultITagValue + "." + EncoderSettings.Return_Output_Extension(EncoderSettings.DefaultITagValue);
               original_filename = vinfo.OriginalVideoName;
               thumb_filename = OutputFileName + "_008.jpg"; // info.ThumbFileName;
               duration = info.Duration;
               duration_sec = info.Duration_Sec;
           }
           else
           {
               flv_filename = vinfo.FLVVideoName;
               original_filename = vinfo.OriginalVideoName;
               thumb_filename = vinfo.ThumbFileName;
               duration = vinfo.Duration;
               duration_sec = vinfo.Duration_Sec;
               isenabled = vinfo.isEnabled;
           }

           // No cloud storage on direct encoding.
           // Note cloude storage only works if background processing is disabled
           // Or works in cased of sheduled processing
           if (CloudSettings.EnableCloudStorage &amp;&amp; errorcode == "0")
           {
               flv_url = "amazon";
               org_url = "https://s3.amazonaws.com/" + CloudSettings.OriginalVideoBucketName + "/" + this.FileName;
               thumb_url = "https://s3.amazonaws.com/" + CloudSettings.ThumbsBucketName + "/" + thumb_filename;

           }

       }
       else
       {
           // set publishing status off.
           ispublished = 0;
           original_filename = this.FileName;
       }

       // Store video information in database
       string ipaddress = context.Request.ServerVariables["REMOTE_ADDR"].ToString();

       // Store media information in database
       Video_Struct vd = new Video_Struct();
       vd.CategoryID = 0; // store categoryname or term instead of category id
       vd.Categories = Categories;
       vd.UserName = UserName;
       vd.Title = "";
       vd.Description = "";
       vd.Tags = Tags;
       vd.Duration = duration;
       vd.Duration_Sec = duration_sec;
       vd.OriginalVideoFileName = original_filename;
       vd.VideoFileName = flv_filename;
       vd.ThumbFileName = thumb_filename;
       vd.isPrivate = Privacy;
       vd.AuthKey = PAuth;
       vd.isEnabled = isenabled;
       vd.Response_VideoID = Response_VideoID; // video responses
       vd.isResponse = isresponse;
       vd.isPublished = ispublished;
       vd.isReviewed = isreviewed;
       vd.FLV_Url = flv_url;
       vd.Thumb_Url = thumb_url;
       vd.Org_Url = org_url;
       vd.Embed_Script = _embed;
       vd.isExternal = 0; // website own video, 1: embed video
       vd.IPAddress = ipaddress;
       vd.Type = MediaType;
       vd.YoutubeID = "";
       vd.isTagsreViewed = 1;
       vd.Mode = 0; // filter videos based on website sections
       //vd.ContentLength = f_contentlength;
       vd.GalleryID = GID;
       vd.ErrorCode = Convert.ToInt32(errorcode);
       long videoid = VideoBLL.Process_Info(vd, false);

       // Process tags
       if (Tags != "")
       {
           int tag_type = 0; // represent videos
           if (MediaType == 1)
               tag_type = 4; // represent audio file
           TagsBLL.Process_Tags(Tags, tag_type, 0);
       }

       if (Response_VideoID > 0)
       {
           VideoBLL.Update_Responses(Response_VideoID);
       }

       return "Success";
    }