Git Product home page Git Product logo

avtranscoder's Introduction

avTranscoder

High level API for FFmpeg / Libav.

Based on FFmpeg/Libav libraries to support various video and audio formats, avTranscoder provides the high level API to re-wrap or transcode media easily.

Build Status Build status Coverage Status Coverity Scan Build Status

Click on the badge above to have a big picture view of what's in progress and how you can help.

โš ๏ธ The latest avTranscoder API does not fit with libav.

The basics

  • avTranscoder is a C++ library.
  • avTranscoder uses SWIG to generate Java and Python bindings.
  • avTranscoder is multiplatform (Linux, MAC, Windows).
  • avTranscoder could be based on Libav, FFmpeg, or your custom fork of one of these librairies.

License

See COPYING.md

How to use

See USAGE.md

Documentation

See Doxygen documentation

Compilation

See INSTALL.md

Packaging

Build openSUSE

comming soon

avtranscoder's People

Contributors

adoussot avatar bitdeli-chef avatar cchampet avatar dimula73 avatar fabiencastan avatar marcantoine-arnaud avatar sarat1669 avatar valnoel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

avtranscoder's Issues

Appveyor: activate x64 build

Error when launch nosetest:

ERROR: Failure: ImportError (DLL load failed: %1 is not a valid Win32 application.)

Traceback (most recent call last):
File "C:\Python27\lib\site-packages\nose\loader.py", line 418, in loadTestsFromName
addr.filename, addr.module)
File "C:\Python27\lib\site-packages\nose\importer.py", line 47, in importFromPath
return self.importFromDir(dir_path, fqname)
File "C:\Python27\lib\site-packages\nose\importer.py", line 94, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "C:\projects\avtranscoder\test\pyTest\testTranscoderTranscodeAudioWave.py", line 10, in
from pyAvTranscoder import avtranscoder as av
File "C:\projects\avtranscoder\build\lib\python2.7\site-packages\pyAvTranscoder\avtranscoder.py", line 32, in
_avtranscoder = swig_import_helper()
File "C:\projects\avtranscoder\build\lib\python2.7\site-packages\pyAvTranscoder\avtranscoder.py", line 28, in swig_import_helper
_mod = imp.load_module('_avtranscoder', fp, pathname, description)
ImportError: DLL load failed: %1 is not a valid Win32 application.

Clean export symbols

Due to some adds off AVExport for simplify build of the binding, remove some exports to reduce API.

Manage end of encoding

Due to codec latencies, some streams requires to process last frames after the end of the process.

Crash when generate rawvideo with extension y4m

Issue by cchampet
Monday Mar 23, 2015 at 15:11 GMT
Originally opened as mikrosimage#140


Command:

avprocessor config.txt toto.y4m

with the transcode of a video stream by using the preset rawYuv.

BT:

#0  0x00007ffff673dd45 in avio_write () from /s/apps/packages/cgDev/ffmpeg/2.4.4/platform-linux/build-debug/lib/libavformat.so.56
#1  0x00007ffff67f09b5 in yuv4_write_packet () from /s/apps/packages/cgDev/ffmpeg/2.4.4/platform-linux/build-debug/lib/libavformat.so.56
#2  0x00007ffff67934a3 in write_packet () from /s/apps/packages/cgDev/ffmpeg/2.4.4/platform-linux/build-debug/lib/libavformat.so.56
#3  0x00007ffff6794981 in av_interleaved_write_frame () from /s/apps/packages/cgDev/ffmpeg/2.4.4/platform-linux/build-debug/lib/libavformat.so.56
#4  0x00007ffff7b6c903 in avtranscoder::FormatContext::writeFrame (this=0x7fffffffd3a8, packet=..., interleaved=true) at /datas/cnt/workspace/avTranscoder_dev/avTranscoder/src/AvTranscoder/file/FormatContext.cpp:94
#5  0x00007ffff7b68e57 in avtranscoder::OutputFile::wrap (this=0x7fffffffd3a0, data=..., streamId=0) at /datas/cnt/workspace/avTranscoder_dev/avTranscoder/src/AvTranscoder/file/OutputFile.cpp:110
#6  0x00007ffff7bae623 in avtranscoder::OutputStream::wrap (this=0x62cb00, data=...) at /datas/cnt/workspace/avTranscoder_dev/avTranscoder/src/AvTranscoder/stream/OutputStream.cpp:26
#7  0x00007ffff7ba1aba in avtranscoder::StreamTranscoder::processTranscode (this=0x63be20, subStreamIndex=-1) at /datas/cnt/workspace/avTranscoder_dev/avTranscoder/src/AvTranscoder/transcoder/StreamTranscoder.cpp:429
#8  0x00007ffff7ba11ed in avtranscoder::StreamTranscoder::processFrame (this=0x63be20) at /datas/cnt/workspace/avTranscoder_dev/avTranscoder/src/AvTranscoder/transcoder/StreamTranscoder.cpp:335
#9  0x00007ffff7ba36c0 in avtranscoder::Transcoder::processFrame (this=0x7fffffffd430) at /datas/cnt/workspace/avTranscoder_dev/avTranscoder/src/AvTranscoder/transcoder/Transcoder.cpp:217
#10 0x00007ffff7ba39a0 in avtranscoder::Transcoder::process (this=0x7fffffffd430, progress=...) at /datas/cnt/workspace/avTranscoder_dev/avTranscoder/src/AvTranscoder/transcoder/Transcoder.cpp:249
#11 0x0000000000404ca0 in main (argc=3, argv=0x7fffffffd648) at /datas/cnt/workspace/avTranscoder_dev/avTranscoder/app/avProcessor/avProcessor.cpp:150

Transcoder : do not set output profile AND ICodec when adding generated stream

Issue by valnoel
Monday Jan 19, 2015 at 18:31 GMT
Originally opened as mikrosimage#60


When we want to generate a stream (black or silence), we should not have to set both output profile and ICodec. The ICodec should be guessed from the profile, which must contain enough parameters to generate the stream.
It would avoid duplicated parameters into ICodec and profile.

https://github.com/mikrosimage/avTranscoder/blob/develop/src/AvTranscoder/transcoder/Transcoder.hpp#L56
https://github.com/mikrosimage/avTranscoder/blob/develop/src/AvTranscoder/transcoder/Transcoder.hpp#L66

Ghost threads with java binding

There is a problem with the InputFile.analyse method when level parameter equals eAnalyseLevelFirstGop (the default value when no parameter is specified) : several threads are created and are not killed.

For example, in our application, metadatas extraction of 5 medias create 20 ghost threads

Deployment of Jar

Need to check the FHS [http://www.pathname.com/fhs/] to know were we can deploy the Jar file like we do.

Using common naming nomenclature

  • prefix interface classes with I (example: InputStream -> IInputStream)
  • folders and filenames without classes in lowerCamelCase
  • Metadatas -> mediaProperties
  • New folder option
  • New folder swig

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.