Mirror of https://git.ffmpeg.org/ffmpeg.git

Overview

FFmpeg README

FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.

Libraries

  • libavcodec provides implementation of a wider range of codecs.
  • libavformat implements streaming protocols, container formats and basic I/O access.
  • libavutil includes hashers, decompressors and miscellaneous utility functions.
  • libavfilter provides a mean to alter decoded Audio and Video through chain of filters.
  • libavdevice provides an abstraction to access capture and playback devices.
  • libswresample implements audio mixing and resampling routines.
  • libswscale implements color conversion and scaling routines.

Tools

  • ffmpeg is a command line toolbox to manipulate, convert and stream multimedia content.
  • ffplay is a minimalistic multimedia player.
  • ffprobe is a simple analysis tool to inspect multimedia content.
  • Additional small tools such as aviocat, ismindex and qt-faststart.

Documentation

The offline documentation is available in the doc/ directory.

The online documentation is available in the main website and in the wiki.

Examples

Coding examples are available in the doc/examples directory.

License

FFmpeg codebase is mainly LGPL-licensed with optional components licensed under GPL. Please refer to the LICENSE file for detailed information.

Contributing

Patches should be submitted to the ffmpeg-devel mailing list using git format-patch or git send-email. Github pull requests should be avoided because they are not part of our review process and will be ignored.

Comments
  • Fixed crash at loading V plane to xmm register.

    Fixed crash at loading V plane to xmm register.

    The problem is that we load plane bytes to mm0/1/6 from Y[2index+8], U[index+4], V[index+4] before checking of index's upper limit.

    FATE is happy (not sure that code is covered though)

    opened by vkalinsky 12
  • prepend @setDataFrame fix

    prepend @setDataFrame fix

    In current versions of ffmpeg, when streaming to an RTMP server, anytime a packet of type RTMP_PT_NOTIFY is encountered, the packet is prepended with @setDataFrame before it gets sent to the server. This is incorrect; only packets for onMetaData and |RtmpSampleAccess should invoke @setDataFrame on the RTMP server. Specifically, the current bug manifests itself when trying to stream onTextData or onCuePoint invocations.

    This fix addresses that problem and ensures that the @setDataFrame is only prepended for onMetaData and |RtmpSampleAccess.

    opened by jeffreywescott 12
  • NVENC 2-pass mode works even with non-low latency presets now.

    NVENC 2-pass mode works even with non-low latency presets now.

    http://developer.download.nvidia.com/compute/nvenc/v5.0_beta/NVENC_DA-06209-001_v06.pdf table 5 on page 10 lists 2-pass mode even for high performance and high quality - profiles in addition to the two low latency - profiles, and when tested manually I could verify this myself, too. I am not sure if this was changed with SDK 5.0 as I can't be arsed to check previous SDKs, but at least starting with 5.0 the comments about 2-pass only working with low latency -presets are incorrect.

    opened by WereCatf 9
  • Add markdown extention to the README

    Add markdown extention to the README

    The readme file has some markdown syntax, for instance the - character one line blow the headings, and the * to make a list. I added .md to readme, now is readme.md and it looks great. See: https://github.com/KonradIT/FFmpeg/blob/master/README.md

    Konrad

    opened by KonradIT 9
  • Convolutions with strides (convselective filter) for ffmpeg

    Convolutions with strides (convselective filter) for ffmpeg

    I have modified the vf_convolution.c filter to be able to use strided convolution. As of now, I have created a new filter convselective.c which supports this feature. I had a few questions:

    • Is strided convolutions a useful feature to have?
    • If so, would it be better to incorporate the same as options in the convolution filter, or have a new filter?
    • I have used if, else statements to check if convolution needs to be performed at a location (separated by stride lengths). Is there a faster way of implementing this in c++, so that it does not slows things down?

    (apologies if my questions/implementation seems naive)

    Thanks

    opened by kedartatwawadi 8
  • enabled expressions on x, y, w, h and t parameters for drawgrid and drawbox

    enabled expressions on x, y, w, h and t parameters for drawgrid and drawbox

    I needed expressions to work for drawbox, so I went ahead and implemented it using vf_scale and vf_drawtext as models. The expressions are evaluated once in config_input, so filter_frame is unchanged. The expressions are evaluated 5 times to handle expressions that reference other expressions (example: h=w/dar).

    cheers, -Mark

    opened by mjmvisser 7
  • Request for merging changes

    Request for merging changes

    Sorry, i'm really not familiar with that, so i hope that this time i did it correctly ?

    From contributing.md :

    Committing changes to a git clone, for example on github.com or gitorious.org. And asking us to merge these changes.

    https://github.com/Matroska-Org/matroska-specification/blob/a2de2b67338fc6f5f64d58e0a65df88850eaca76/codec_specs.md#subtitle-codec-mappings

    Add USF, WEBVTT, BMP and KATE to the subtitles list.

    opened by Sami32 6
  • Fix a bug:When a client is behind NAT, it cannot receive any packets sent from ffserver via udp.

    Fix a bug:When a client is behind NAT, it cannot receive any packets sent from ffserver via udp.

    When ffserver sends rtp packets via udp, the udp ports of client is got from header of SETUP request.But if the client is behind NAT, the client ports got from header of SETUP request are not ones mapped by NAT but client's private ports. In this case, the client can't get any packets because ffserver still sends that to client's private ports.

    In fact, clients(such as vlc, video player on android) send two udp packets to ffserver for punching a hole on NAT after getting reply of SETUP request. So, we should receive the two udp packets, retrieve real client ports mapped by NAT, and send packets to the client via the real ports.

    opened by lemonlinger 6
  • Fix a bug

    Fix a bug

    Update value of variable local_rtp_port before checking if it is not less than zero

    This bug makes the rtcp port and rtp port are not two successive integers which are sent to client as server ports.

    But some video players on Android will not send udp hole punching messages if the rtcp port and rtp port are not two successive integers.So, if the video player is behind NAT, it cannot receive any rtp messages via udp.

    opened by lemonlinger 6
  • Used to add NEON optimization for Aarch64 HEVC decoder

    Used to add NEON optimization for Aarch64 HEVC decoder

    This commit finished IDCT NEON optimization for aarch64 HEVC decoder, and many h265 stream test vedio have been tested by the optimed HEVC, the point have be increased 30% according to the org.

    opened by zjh8890 5
  • libavformat/mpegtsenc: allow to set service_type in sdt

    libavformat/mpegtsenc: allow to set service_type in sdt

    This adds an option to set the service type in mpegts as define in ETSI 300 468. I've been using this to pipe internet radio stream (originally as HLS/m3u8) from ffmpeg to tvheadend, when the service type set right tvheadend recognize the mpegts stream as a radio channel. This have been test against master. linuxstb from the hts freenode channel originally written the patch and allowed me to push it upstream.

    opened by dhead666 5
  • WARNING: PULL REQUESTS ON THIS REPOSITORY ARE IGNORED

    WARNING: PULL REQUESTS ON THIS REPOSITORY ARE IGNORED

    This is not a real pull request, but a reminder whoever comes across this repository. You should not open pull requests here; most developers don't look at the pull requests, so they will be ignored for the most part. The reason is that FFmpeg development, including code review, happens on the ffmpeg-devel mailing list, not here.

    This is what the README.md says:

    Patches should be submitted to the ffmpeg-devel mailing list using git format-patch or git send-email. Github pull requests should be avoided because they are not part of our review process. Few developers follow pull requests so they will likely be ignored.

    Please read our official documentation on how to contribute.

    opened by ghost 14
Releases(n3.0)
a system for building custom ffmpeg binaries for Android

This is a new android-ffmpeg project since it seems there were so many different ways of doing it, it was confusing. So here is my clean, easily chan

Guardian Project 967 Nov 12, 2022
Android Java wrapper around ffmpeg command line binary

FFMPEG Library for Android This project is a Java wrapper around an ffmpeg command line binary for use in Android applications. It depends on the andr

Guardian Project 555 Dec 5, 2022
script(s) to build ffmpeg for android, including support for RTMP (and OpenSSL)

android-ffmpeg-with-rtmp This repository contains script(s) to build ffmpeg for android with RTMP (and OpenSSL) support. Instructions Install the Andr

cine.io 234 Dec 28, 2022
Script and Instructions for building FFmpeg for Android

FFmpeg-Android Herein lies scripts and instructions for compiling FFmpeg for Android with RTMP support. Much thanks to Chris Ballinger and Liu Feipeng

David Brodsky 80 Dec 13, 2022
Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.

ijkplayer Platform Build Status Android iOS Video player based on ffplay Download Android: Gradle # required allprojects { repositories {

bilibili 28.9k May 26, 2021
FFmpeg compiled for Android. Execute FFmpeg commands with ease in your Android app.

FFMPEG video operations FFmpeg compiled for Android. Execute FFmpeg commands with ease in your Android app. Getting Started This project is provide in

Simform Solutions 277 Jan 2, 2023
Android port of Simon Tatham's Puzzles. *git replace in use* - you might want to {{ git fetch origin 'refs/replace/*:refs/replace/*' }}

This is the README accompanying the source code to Simon Tatham's puzzle collection. The collection's web site is at <https://www.chiark.greenend.org.

Chris Boyle 470 Dec 22, 2022
Android application powering the mirror in my house

HomeMirror Android application powering the mirror in my house Google Play Link Software Day, time, and weather display Birthday messages Chore remind

Hannah Mittens Morrison 7.9k Dec 30, 2022
Mirror of Gitlab Repository

Physikal Physikal is a Kotlin units of measurement, physical computing, and dimension analysis library. Currently just extensions for Java units of me

Tenkiv 33 Oct 20, 2022
I was fed up with writing Java classes to mirror json models. So I wrote this Java app to automate the process.

Json2Java I was fed up with writing Java classes to mirror json models. So I wrote this Java app to automate the process. What this tool can do right

Jon F Hancock 303 Oct 8, 2022
Repository with source code from http://rosettacode.org/wiki/Category:Kotlin

Rosetta Code Kotlin This is a repository with the Kotlin source code from RosettaCode wiki. The main motivation for extracting all the code into a rep

Dmitry Kandalov 20 Dec 27, 2022
New version of my Android app that shows you popular movies using themoviedb.org API.

New version of my Android app that shows you popular movies using themoviedb.org API. Using Modern Android Develpment skills like Kotlin, Room, Retrofit, Hilt, coroutines, Flow and Jetpack Compose.

Gemma Lara Savill 0 Apr 21, 2022
NewsApp based on NewsApi.org

NewsApp A simple app that is gives articles and breaking news from news sources and blogs across the web. Used technologies MVVM, Retrofit, Navigation

Zokirjon 1 Nov 28, 2021
Make interesting books for your kids, usint text and images from simple.wikipedia.org

Baby Book Builder Baby Book Builder is an Android app and a website for creating books to help your growing child learn. Contributing Donations Baby B

Baby Apps 11 Nov 19, 2022
Play casual chess on lichess.org via voice commands

Lichess-by-Voice lichess.org is a cost-free, ad-free chess server. Lichess, as well as this app, is Open Source. The app connects to your Lichess acco

Ralf Stephan 14 Sep 7, 2022
Xoxo is a simple wrapper around org.w3c.dom to parse XML using nice Kotlin APIs

Xoxo ?? Xoxo is a simple wrapper around org.w3c.dom to parse XML using nice Kotlin APIs. No more NodeList, .item(), etc... just use .children, .filter

Martin Bonnin 51 Sep 1, 2022
Freenet Org Website Development Notes

Freenet Org Website Development Notes Overview This is the repository for the Freenet project website. It is built on the Kweb framework in Kotlin, an

The Freenet Project 5 Dec 23, 2022
Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.

ijkplayer Platform Build Status Android iOS Video player based on ffplay Download Android: Gradle # required allprojects { repositories {

bilibili 31k Jan 3, 2023
[] FFmpeg build for android random architectures with example jni

AndroidFFmpegLibrary This project aims to create working library providing playing video files in android via ffmpeg libraries. With some effort and N

AppUnite Sp. z o.o. Spk. 1.1k Dec 27, 2022
[] FFmpeg build for android random architectures with example jni

AndroidFFmpegLibrary This project aims to create working library providing playing video files in android via ffmpeg libraries. With some effort and N

AppUnite Sp. z o.o. Spk. 1k Mar 1, 2021