• Stars
    star
    152
  • Rank 244,685 (Top 5 %)
  • Language
    C++
  • License
    MIT License
  • Created over 9 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simple FFmpeg video player

FFmpegPlayer

A simple FFmpeg based player. The player core is generic and made with multiplatformity in mind. UI / video / audio layer is MFC/Win32 specific. It turns out that there is no need to use multimedia libraries. There is also a Qt based demo example included.

Semi transparent, click through full screen mode introduced. It is invokable by holding ctrl+shift while pressing full screen button.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

  • Visual Studio 2017 or higher.
  • Intel SDK For OpenCL Applications installation is required for the super resolution functionality intergated.

Installing

Be sure to download git submodules.

To get a development env running:

Install vcpkg from https://github.com/Microsoft/vcpkg.

.\vcpkg integrate install

Install Boost, FFmpeg, OpenCV etc... :

vcpkg install boost
vcpkg install ffmpeg[ffmpeg,x264,nonfree,gpl,vpx,webp,zlib]
...

YouTube view support using https://github.com/pytube/pytube.git is turned on by default. It can be turned off by commenting define YOUTUBE_EXPERIMENT in YouTuber.cpp. Python is also needed otherwise:

vcpkg install python3

The matching Python version has to be installed and added to the PATH environment variable for the accessory DLLs to be accessible.

It is also possible that Boost::Python stuff will have to be enabled:

vcpkg install --featurepackages --recurse boost[python]

You may need to remove pytube stuff from your profile folder for the player application to set up the latest version, for example, by invoking remove_pytube.cmd.

You can also "patch" Python stuff by creating %LOCALAPPDATA%\git-subst.cfg mapping file that contains, for example,

https://github.com/pytube/pytube/archive/master.zip = https://github.com/garywu007/pytube/archive/refs/heads/master.zip

Sometimes it is needed to visit pytube issues list and apply fixes, for example

Take into account https://www.psiphon3.com if you encounter HTTP Error 429.

Just in case: "In fact in boost-python, the default behavior is that even when debug boost libraries are created, these libraries are linked to the release pythonX.dll/lib - by intention, according to the docs." pybind/pybind11#1295

Tiny demos here: https://www.youtube.com/watch?v=dySA4yEGdEc https://www.youtube.com/watch?v=t5iW2ZsEzrA

Tip: hold Ctrl+Shift while submitting File Open dialog to choose a separate audio file. It works for the file opening from the Windows Explorer as well.

Please take into account specific Windows 10 behavior while opening Internet shortcuts: https://community.spiceworks.com/topic/1968971-opening-web-links-downloading-1-item-to-zcrksihu You can avoid this by dragging and dropping them.

Note that the FFmpeg patch speeds up HEVC decoding without GPU support by ~10%:

image

Bonus tip

Playing YouTube videos in browsers may result in poor performance on slow hardware. Assign a keyboard shortcut to the FFmpeg player by editing its shortcut. Hover your mouse over the YouTube link in Firefox and bring up the shortcut. A player pop-up window will appear, starting the video playback. The same can be achieved in Chrome with some tweaking. Start Chrome with this flag: --force-renderer-accessibility and / or set up IAccessible2 COM proxy stub DLL.

redline

More Repositories

1

LIII

multi-platform bittorrent client
C++
737
star
2

NTFS-Search

Taken from https://sourceforge.net/projects/ntfs-search/
C++
21
star
3

webrtc-ui

Experimenting with WebRTC and Qt and GStreamer
C++
6
star
4

image-upscale

C++
3
star
5

image-reconstruction

C++ port of www.pyrunner.com/weblog/2016/05/26/compressed-sensing-python/
C++
2
star
6

DeepNormals-tflite

C++/TFLite port of https://github.com/V-Sense/DeepNormals
C++
2
star
7

FVD

free video downloader
C++
2
star
8

media-receiver-v2

Experimenting with https://github.com/paullouisageneau/libdatachannel
C++
2
star
9

copy_trade_system

cloned from https://gitlab.com/hyandi.work/copy_trade_system just in case
C
2
star
10

grpcpp-pubsub

C++
1
star
11

pdfium-fork

C++
1
star
12

sendrecv

C++
1
star
13

rb_avl_comparison

Comparing RB and AVL tree implementations. We Need To Go Deeper.
C
1
star
14

zip-downloader

Downloader/unzipper opus
C
1
star
15

media-receiver

C++
1
star
16

slots-generator

some old test task
C++
1
star
17

detect-lines

exercise in classical computer vision
C++
1
star
18

video-stabilization

C++
1
star
19

number_speller

convert numbers into words
C++
1
star
20

fourier-segmentation

Not quite segmentation though
C++
1
star
21

line-filler

C++ port of https://github.com/hepesu/LineFiller
C++
1
star
22

minesweeper-redux

About.com April'2009 Programming Challenge 24 - MineSweeper Redux
C++
1
star
23

sudoku-solver

From https://habr.com/ru/post/462411/
C++
1
star
24

anomalies-detecting

A simple yet effective approach to detecting visual anomalies
C++
1
star
25

image-segmentation-split-and-merge-quadtrees

Taken from https://stackoverflow.com/a/14730467
C++
1
star
26

WellTrajectoryCalculator

See https://www.drillingmanual.com/directional-well-trajectory-calculation-profile-design-planning/
C++
1
star
27

media-sender-v2

Experimenting with https://github.com/paullouisageneau/libdatachannel
C++
1
star
28

movie-upscaler

see https://towardsdatascience.com/deep-learning-based-super-resolution-with-opencv-4fd736678066
C++
1
star
29

golang-hello-aws-sdk

Go
1
star
30

Normal2Height2

An accompany to https://github.com/V-Sense/DeepNormals
C++
1
star
31

FSRCNN-OpenCV

Fork from https://github.com/thinkerleolee/FSRCNN-OpenCV
C++
1
star
32

levenshteinsgate

Levenshtein distance implementation using a trie for fast string similarity searching
C++
1
star
33

Normal2Height

C++
1
star
34

jpeg2bmp

hello world
C++
1
star
35

hello-imdb

An example of Hamming codes usage for mixed numerical and multi-valued categorical data involving https://www.imdb.com/interfaces/
Jupyter Notebook
1
star
36

puzzle-15

Optimal implementation of the Sliding 15 Puzzle game with Iterative Deepening A* AI Solver using Template Metaprogramming
C++
1
star
37

Literacy

Taken from github.com/PacktPublishing/Qt-5-and-OpenCV-4-Computer-Vision-Projects.git
C++
1
star
38

grpcpp-pubsub-v2

C++
1
star
39

headless-chrome-client

C++
1
star
40

mini-dictionary

Old and crappy but working English-Russian-English dictionary
C++
1
star
41

puzzle-15-wpf

Taken from https://www.codeguru.com/cpp/misc/misc/consoleapps/article.php/c13607/Template-Metaprogramming-and-Puzzle-15-Optimal-Solution.htm
C++
1
star
42

EnumerateDevices

C++
1
star