Recherche avancée

Médias (0)

Mot : - Tags -/upload

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (47)

Sur d’autres sites (8267)

  • ffmpeg : How can I send a H.265 encoded stream to wowza ?

    24 avril 2015, par Fuzz

    I managed to encode H.265 to an output file like this :

    ffmpeg -i test.m2ts -c:v libx265 -c:a copy output.mp4

    and I managed to stream a H.264 file to wowza like this :

    ffmpeg -re -i sample.mp4 -vcodec libx264 -vprofile default -vprofile baseline -r 24 -g 48 -vb 150000 -strict experimental -acodec aac -ab 96000 -ar 48000 -ac 2 -f rtsp -muxdelay 0.1 rtsp://username:password@127.0.0.1:1935/ApplicationName/myStream

    But I just cant seem to stream a H.265 to a rtsp stream.

    If I use the libx265 in the command above I get the error :

    Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

    Any hints would be greatly appreciated.

    Here is the console message with -loglevel verbose

    >ffmpeg -re -i sample.mp4 -vcodec libx265 -vprofile default -vprofile baseline -r 24 -g 48 -vb 150000 -strict experimental -acodec aac -ab 96000 -ar 48000 -ac 2 -f rtsp -muxdelay 0.1 rtsp://username:password@127.0.0.1:1935/ApplicationName/myStream -l
    oglevel verbose
    ffmpeg version N-69156-gff5b9a1c Copyright (c) 2000-2015 the FFmpeg developers
     built on Jan 20 2015 00:38:00 with gcc 4.9.2 (GCC)
     configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-
    libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --
    enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
     libavutil      54. 17.100 / 54. 17.100
     libavcodec     56. 20.100 / 56. 20.100
     libavformat    56. 19.100 / 56. 19.100
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5.  8.100 /  5.  8.100
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  1.100 /  1.  1.100
     libpostproc    53.  3.100 / 53.  3.100
    Routing option strict to both codec and muxer layer
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'sample.mp4':
     Metadata:
       major_brand     : qt
       minor_version   : 512
       compatible_brands: qt
       creation_time   : 1970-01-01 00:00:00
       encoder         : Lavf52.73.0
     Duration: 00:09:56.46, start: 0.000000, bitrate: 524 kb/s
       Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 424x240 (432x240), 420 kb/s, 24 fps, 24 tbr, 24 tbn, 48 tbc (default)
       Metadata:
         creation_time   : 1970-01-01 00:00:00
         handler_name    : DataHandler
         encoder         : libx264
       Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 99 kb/s (default)
       Metadata:
         creation_time   : 1970-01-01 00:00:00
         handler_name    : DataHandler
    [graph 0 input from stream 0:0 @ 00000000050f6e60] w:424 h:240 pixfmt:yuv420p tb:1/24 fr:24/1 sar:0/1 sws_param:flags=2
    [graph 1 input from stream 0:1 @ 0000000002c38700] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x3
    [libx265 @ 0000000002c172a0] [Eval @ 000000000022aca0] Undefined constant or missing '(' in 'baseline'
    [libx265 @ 0000000002c172a0] Unable to parse option value "baseline"
    [libx265 @ 0000000002c172a0] Error setting option profile to value baseline.
    Output #0, rtsp, to 'rtsp://username:password@127.0.0.1:1935/ApplicationName/myStream':
     Metadata:
       major_brand     : qt
       minor_version   : 512
       compatible_brands: qt
       encoder         : Lavf52.73.0
       Stream #0:0(eng): Video: hevc, none, q=2-31, 128 kb/s, 24 fps (default)
       Metadata:
         creation_time   : 1970-01-01 00:00:00
         handler_name    : DataHandler
         encoder         : Lavc56.20.100 libx265
       Stream #0:1(eng): Audio: aac, 0 channels, 128 kb/s (default)
       Metadata:
         creation_time   : 1970-01-01 00:00:00
         handler_name    : DataHandler
         encoder         : Lavc56.20.100 aac
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> hevc (libx265))
     Stream #0:1 -> #0:1 (aac (native) -> aac (native))
    Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
  • How to write unit tests for your plugin – Introducing the Piwik Platform

    17 novembre 2014, par Thomas Steur — Development

    This is the next post of our blog series where we introduce the capabilities of the Piwik platform (our previous post was How to verify user permissions). This time you’ll learn how to write unit tests in Piwik. For this tutorial you will need to have basic knowledge of PHP, PHPUnit and the Piwik platform.

    When is a test a unit test ?

    There are many different opinions on this and it can be sometimes hard to decide. At Piwik we consider a test as a unit test if only a single method or class is being tested and if a test does not have a dependency to the filesystem, web, config, database or to any other plugin.

    If a test is slow it can be an indicator that it is not a unit test. “Slow” is of course a bit vague. We will cover how to write other type of tests, such as integration tests, in one of our next blog posts.

    Getting started

    In this post, we assume that you have already installed Piwik 2.9.0 or later via git, set up your development environment and created a plugin. If not, visit the Piwik Developer Zone where you’ll find the tutorial Setting up Piwik and other Guides that help you to develop a plugin.

    Let’s create a unit test

    We start by using the Piwik Console to create a new unit test :

    ./console generate:test --testtype unit

    The command will ask you to enter the name of the plugin the created test should belong to. I will use the plugin name “Insights”. Next it will ask you for the name of the test. Here you usually enter the name of the class you want to test. I will use “Widgets” in this example. There should now be a file plugins/Insights/tests/Unit/WidgetsTest.php which contains already an example to get you started easily :

    1. /**
    2.  * @group Insights
    3.  * @group WidgetsTest
    4.  * @group Plugins
    5.  */
    6. class WidgetsTest extends \PHPUnit_Framework_TestCase
    7. {
    8.  
    9.     public function testSimpleAddition()
    10.     {
    11.         $this->assertEquals(2, 1+1);
    12.     }
    13.  
    14. }

    Télécharger

    We don’t want to cover how you should write your unit test. This is totally up to you. If you have no experience in writing unit tests yet, we recommend to read articles on the topic, or a book, or to watch videos or anything else that will help you learn best.

    Running a test

    To run a test we will use the command tests:run which allows you to execute a test suite, a specific file or a group of tests.

    To verify whether the created test works we will run it as follows :

    ./console tests:run WidgetsTest

    This will run all tests having the group WidgetsTest. As other tests can use the same group you might want to pass the path to your test file instead :

    ./console tests:run plugins/Insights/tests/Unit/Widgets.php

    If you want to run all tests within your plugin pass the name of your plugin as an argument :

    ./console tests:run insights

    Of course you can also define multiple arguments :

    ./console tests:run insights WidgetsTest

    This will execute all tests within the insights plugin having the group WidgetsTest. If you only want to run unit tests within your plugin you can do the following :

    ./console tests:run insights unit

    Advanced features

    Isn’t it easy to create a unit test ? We never even created a file ! You can accomplish even more if you want : You can generate other type of tests, you can run tests on Amazon’s AWS and more. Unfortunately, not everything is documented yet so we recommend to discover more features by executing the commands ./console list tests and ./console help tests:run.

    If you have any feedback regarding our APIs or our guides in the Developer Zone feel free to send it to us.

  • Problems accessing codecs with ggplot and gganimate

    19 décembre 2016, par noLongerRandom

    Using gganimate. Can’t figure out how to properly access functionality of ffmpeg, specifically I want to change the codec I’m using in the video file I’m outputting.

    # load packages
    library(ggplot)
    library(animation)
    library(gganimate)

    # Here's my data.frame
    myDf <- data.frame(
       year = c(1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014),
       bottom50 = c(0.195, 0.191, 0.187, 0.192, 0.196, 0.205, 0.207, 0.210, 0.209, 0.204, 0.203, 0.204, 0.205, 0.203, 0.202, 0.200, 0.200, 0.201, 0.199, 0.195, 0.190, 0.183, 0.179, 0.179, 0.177, 0.172, 0.169, 0.169, 0.168, 0.166, 0.158, 0.159, 0.158, 0.154, 0.151, 0.148, 0.149, 0.148, 0.146, 0.149, 0.148, 0.145, 0.142, 0.138, 0.135, 0.137, 0.137, 0.136, 0.130, 0.127, 0.123, 0.127, 0.125), top1 = c(0.126, 0.127, 0.129, 0.128, 0.126, 0.123, 0.122, 0.115, 0.110, 0.111, 0.111, 0.109, 0.106, 0.105, 0.105, 0.107, 0.108, 0.111, 0.107, 0.110, 0.112, 0.115, 0.125, 0.125, 0.122, 0.133, 0.149, 0.145, 0.145, 0.139, 0.150, 0.146, 0.147, 0.153, 0.160, 0.166, 0.169, 0.177, 0.183, 0.173, 0.171, 0.172, 0.183, 0.194, 0.201, 0.199, 0.195, 0.185, 0.198, 0.196, 0.208, 0.196, 0.202)
    )

    #Basic plot
    p <- ggplot(myDf, aes(x = year, y = bottom50, frame = year)) +
       geom_line(color = "dodgerblue") +
       geom_line(aes(y = top1), color = "darkred")

    The non-animated version gets me what I want :

    enter image description here

    And I get an animation version output to video with :

    gganimate(p, interval = .1, title_frame = FALSE, "income.mp4")

    That’s fine, but I want to change some the output parameters, specifically : alter the dimensions, the frame rate, and use a different codec.

    # change some of the options
    ani.options(ani.height = 1080, ani.width = 1920,
               interval = 0.04166667, other.opts = "-vcodec qtrle -f mov")
    # re-animate
    gganimate(p, title_frame = FALSE, "income.mov")

    That gives me the following error :

    Error in animation_saver(saver, filename) :
     Don't know how to save animation of type mov

    I’m using ’.mov’ as my file extension because I’m trying to change to the Animation codec (so it’s no longer a .mp4 wrapper). I’ve got ffmpeg installed, so this is probably a syntax issue. But the documentation isn’t very clear here ; gganimate doesn’t have any documentation on changing codecs (or outputting any video besides an mp4), and the animation package is light on specifics as well.