| === The GstValidate CLI Tools | |
| The commands here assume that you have installed gst-validate. If this | |
| is not the case, go into the gst-validate directory and call the tools | |
| directly with the path tools/<tool-executable> | |
| 1- gst-validate-1.0: It is the simplest tool and is used to run a gst | |
| launch style pipeline. Monitors are added to it to identify issues in the | |
| used elements. At the end a report will be printed, this report will | |
| contain information about all issues that were encountered while running | |
| gst-validate. To view issues as they are created, set the environment | |
| variable GST_DEBUG=validate:2 and it will be printed as gstreamer | |
| debugging. You can basically run any GstPipeline pipeline using it. | |
| If you are not familiar with gst-launch syntax, please refer to | |
| gst-launch's documentation. | |
| Examples: | |
| # Simple playback pipeline | |
| gst-validate-1.0 playbin uri=file:///path/to/some/media/file | |
| # Transcoding pipeline | |
| gst-validate-1.0 filesrc location=/root/Videos/big_buck_bunny_1080p_h264.mov ! \ | |
| qtdemux name=d ! queue ! x264enc ! h264parse ! mpegtsmux name=m ! progressreport ! filesink location=/root/test.ts \ | |
| d. ! queue ! faac ! m. | |
| You can also activate what we call "scenarios" which will execute | |
| actions on the pipeline. Those actions can be for example, "set pipeline | |
| to pause", "seek to N with rate=x" etc, using the following syntax: | |
| gst-validate-1.0 playbin uri=file:///path/to/some/media/file --set-scenario=seek_forward | |
| You can list all available scenarios using: | |
| gst-validate-transcoding-1.0 --list-scenarios | |
| Scenarios are simple text files describing a list of actions, you can find the | |
| source scenario files in validate/data/ | |
| You can find more information about scenarios on the GstValidateScenario documentation: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-validate/html/GstValidateScenario.html | |
| You can find more information about the various action types available to be executed with: | |
| gst-validate-1.0 -t <optional-action-type> | |
| or: | |
| gst-validate-transcoding-1.0 -t <optional-action-type> | |
| 2- gst-validate-transcoding-1.0: Transcodes input-uri to output-uri, | |
| using the given encoding profile. The pipeline will be monitored for | |
| possible issues detection using the gst-validate lib, at the end of | |
| execution, a report containing information about all found issues will | |
| be printed. | |
| Example: | |
| # Will transcode file://path/to/some/media/file to H264/AAC into mp4 | |
| gst-validate-transcoding-1.0 -o 'video/quicktime,variant=iso:video/x-h264:audio/mpeg,mpegversion=4' \ | |
| file://path/to/some/media/file file:///path/to/destination_h264_aac.qt | |
| The same scenarios can be activated on gst-validate-transcoding-1.0 as | |
| with gst-validate-1.0 | |
| 3- gst-validate-media-check-1.0: Analyzes a media file and writes the | |
| results to stdout or a file. It can also compare the results found with | |
| another results file for identifying regressions. The monitoring lib | |
| from gst-validate will be enabled during the tests to identify issues | |
| with the GStreamer elements involved with the media file's container and | |
| codec types. It will actually do a series of checks over the media file. | |
| Example: | |
| # Will check various media properties from the file | |
| gst-validate-media-check-1.0 file://path/to/some/media/file | |
| === LD_PRELOAD / Testing with exiting application | |
| If you want to test an already existing application without modifying it. Just | |
| use: | |
| LD_PRELOAD=path/to/libgstvalidatepreload.so yourapp ... | |
| gst-validate will try to replace GstPipeline creating functions and configure | |
| monitors automatically for you, reports will be printed to stderr when | |
| they are found. You can also use GST_DEBUG to view the issues that were found | |
| NOTES: The exit code will be "18" in case a critical issue has | |
| been seen while running any of those tools. | |