Raveler /
ffmpeg-cpp
A clean, easy-to-use C++ wrapper around the ffmpeg libraries
72/100 healthLoading repository data…
huhusen / repository
A clean, easy-to-use C++ wrapper around the ffmpeg libraries
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
#FFMPEG_EASY
一个乍看封装了仔细一看又没封装但实际封装了的FFMPEG使用库
#include <iostream>
#include "Reader.h"
#include "Writer.h"
#include "spdlog/spdlog.h"
#include "MediaPacket.h"
int main() {
auto reader = Reader::create("input.mp4");
if (!reader) {
spdlog::throw_spdlog_ex("Input couldn't open ");
}
reader->find();
int video_index = reader->find(MediaType::VIDEO);
int audio_index = reader->find(MediaType::AUDIO);
spdlog::info("video_index:{}", video_index);
spdlog::info("audio_index:{}", audio_index);
const char *filename = "output.mp4";
auto writer = Writer::create(filename);
AVStream *video = avformat_new_stream(writer->ctx(), nullptr);
AVStream *audio = avformat_new_stream(writer->ctx(), nullptr);
std::cout << avcodec_parameters_copy(video->codecpar, reader->ctx()->streams[video_index]->codecpar) << std::endl;
std::cout << avcodec_parameters_copy(audio->codecpar, reader->ctx()->streams[audio_index]->codecpar) << std::endl;
std::cout << avio_open(&writer->ctx()->pb, filename, AVIO_FLAG_WRITE) << std::endl;
std::cout << avformat_write_header(writer->ctx(), nullptr) << std::endl;
auto packet = MediaPacket::create();
while (reader->read(packet->avPacket()) >= 0) {
if (packet->avPacket()->stream_index == video_index) {
spdlog::info("video_index.");
} else if (packet->avPacket()->stream_index == audio_index) {
spdlog::info("audio_index.");
}
packet->pack(reader->ctx()->streams[packet->avPacket()->stream_index]->time_base,
writer->ctx()->streams[packet->avPacket()->stream_index]->time_base);
writer->write(packet->avPacket());
}
av_write_trailer(writer->ctx());
return 0;
}
Selected from shared topics, language and repository description—not editorial ratings.
Raveler /
A clean, easy-to-use C++ wrapper around the ffmpeg libraries
72/100 healthDesbordante /
Desbordante is a high-performance data profiler that is capable of discovering many different patterns in data using various algorithms. It also allows to run data cleaning scenarios using these algorithms. Desbordante has a console version and an easy-to-use web application.
74/100 healthbabelshift /
🎮 C# / .NET library that makes it easy to use the Steam Web API. It conveniently wraps around all of the JSON data and ugly API details with clean methods, structures and classes.
daudmalik06 /
A slim PHP wrapper around Google Chrome for converting URLs to PDFs or taking screenshots. It's easy to use and has a clean OOP interface. Compatible with Laravel, Symfony, and other frameworks. It resolves CSS/HTML issues when generating PDFs/images.
65/100 healthmmouzo /
A free, easy-to-use CV template with a clean design. Just fill in your details and you're ready to go!
74/100 healthPayalUmraliya /
PUGifLoaderControl - swift is a clean and easy-to-use loader meant to display the progress of an ongoing task on iOS
63/100 health