
Recherche avancée
Médias (1)
-
The pirate bay depuis la Belgique
1er avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
Autres articles (45)
-
Configurer la prise en compte des langues
15 novembre 2010, parAccéder à la configuration et ajouter des langues prises en compte
Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...) -
Qu’est ce qu’un éditorial
21 juin 2013, parEcrivez votre de point de vue dans un article. Celui-ci sera rangé dans une rubrique prévue à cet effet.
Un éditorial est un article de type texte uniquement. Il a pour objectif de ranger les points de vue dans une rubrique dédiée. Un seul éditorial est placé à la une en page d’accueil. Pour consulter les précédents, consultez la rubrique dédiée.
Vous pouvez personnaliser le formulaire de création d’un éditorial.
Formulaire de création d’un éditorial Dans le cas d’un document de type éditorial, les (...) -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir
Sur d’autres sites (8322)
-
12 ways Matomo Analytics helps you to protect your visitor’s privacy
-
cmake installation of x265 for ffmpeg on Cygwin - executable location different from other codecs
12 mai 2020, par bballdave025TL ;DR (with expected vs. real)



For a Cygwin build of
ffmpeg
, I'm installingx265
, and it seems to me that the executable ends up in the wrong place. I'll show some basic directory structure, then I'll show thetree
outputs for expected and real, both before and after thecmake
installation. For directories where I think this is important, I'll show the outputs before and after thecmake
installation.


My question has two parts. I used the following
cmake
andmake
commands,


# pwd => $HOME/programs/ffmpeg/ffmpeg_sources/x265/build/linux
PATH="$HOME/programs/ffmpeg/bin:$PATH" \
 cmake -G "Unix Makefiles" \
 -DCMAKE_INSTALL_PREFIX="$HOME/programs/ffmpeg/ffmpeg_build" \
 -DENABLE_SHARED=OFF \
 -DCMAKE_EXE_LINKER_FLAGS="-static" 
 ../../source
PATH="$HOME/programs/ffmpeg/bin:$PATH" make -j $(nproc)
make install




The result is below, with my real vs. expected, and there is a more detailed, more explicit, and hopefully more clear file with the info at pastebin.com/86wHrtxR. Now, for my two-part question :



- 

-
How can I change my
cmake
command so that myx265.exe
file ends up in$HOME/programs/ffmpeg/bin
with the proper linking, rather than$HOME/programs/ffmpeg/ffmpeg_build/bin
? -
Would the build/linker/whatever figure things out for the
ffmpeg
build ?







I want to know the answer to question number 1 regardless of the answer to question number 2. I haven't used
cmake
with the-DVAR=var
flags before, and I'd like to take this opportunity to learn.


For the result :



Things surrounded by double curly brackets are
{{ expected }}
.


Things surrounded by double angle brackets are
<< real >>
, i.e. they exist after the installation is done.


If real matches expected, and the file/directory is new, I've surrounded it by double parentheses, i.e. double round brackets.
(( match ))



If something is not new (and thus has the same before and after) I haven't marked it.



me@MACHINE ~/programs/ffmpeg
 $ tree --charset=ascii bin
 bin
 |-- lame.exe
 |-- mp3rtp.exe
 |-- mp3x.exe
 `-- x264.exe
{{ `-- x265.exe }} ## Expected, not Exists

 me@MACHINE ~/programs/ffmpeg
 $ tree --charset=ascii \
 ffmpeg_build
 ffmpeg_build
<< |-- bin >> ## Not expected, Exists
<< | `-- x265.exe >> ## Not expected, Exists
 |-- include
 | |-- fdk-aac
 | | |-- aacdecoder_lib.h
 | | |-- aacenc_lib.h
 | | `-- ... <more files="files">
 | |-- lame
 | | `-- lame.h
 | |-- x264.h
 | `-- x264_config.h
(( | |-- x265.h )) ## Expected and Exists
(( | `-- x265_config.h )) ## Expected and Exists
 |-- lib
 | |-- libfdk-aac.a
 | |-- libfdk-aac.la
 | |-- libmp3lame.a
 | |-- libmp3lame.la
(( | |-- libx265.a )) ## Expected and Exists
 | `-- pkgconfig
 | |-- fdk-aac.pc
 | `-- x264.pc
(( | `-- x265.pc )) ## Expected and Exists
 `-- share
 |-- doc
 | ... <only lame="lame">
 `-- man
 ... <only lame="lame">
</only></only></more>



Other, possibly useful information about the build directory structure.



me@MACHINE ~/programs/ffmpeg
$ tree --charset=ascii -L 1 .
.
|-- bin
|-- ffmpeg_build
`-- ffmpeg_sources

3 directories, 0 files




For this next,
ffmpeg_sources
dir, I'm showing the after (which is both expected and real/exists) surrounded by double parentheses, i.e. double round brackets,(( <after> ))</after>
.


me@MACHINE ~/programs/ffmpeg
 $ tree --charset=ascii -L 1 ffmpeg_sources
 ffmpeg_sources
 |-- fdk-aac.zip
 |-- lame-svn
 |-- mstorsjo-fdk-aac-e7d8591
 |-- x264-snapshot-20191217-2245
 |-- x264-snapshot-20191217-2245.tar.bz2
 `-- x264-snapshot-20191218-README.txt
(( `-- x265 ))

 3 directories, 3 files
(( 4 directories, 3 files ))






NOW, FOR SOME MORE DETAIL





What I'm Doing



I am working on a Cygwin build (vs. a Windows/mingw build) of
ffmpeg
. I am following an older guide by koohiimaster (archived). That guide says,




[W]e are not cross-compiling for windows ; we are compiling for Cygwin.





This 2014 guide doesn't have all of the codecs I want - I want as complete a build as possible - so I've also been referring to this ffmpeg-for-Ubuntu guide (archived), which I hope is kept up-to-date. It's referred to by koohiimaster.



Also, as a way of checking that I'm getting all the codecs I want, I've been looking at this FFmpeg for Windows guide from SuperUser



I'll give the basics of my steps below. More details, as well as all the output is at pastebin.com/suL1nU6Z.



A look at directory structure for the build



me@MACHINE ~/programs/ffmpeg
$ cd $HOME/programs/ffmpeg

me@MACHINE ~/programs/ffmpeg
$ tree --charset=ascii -d -L 1
.
|-- bin
|-- ffmpeg_build
`-- ffmpeg_sources

3 directories




Getting the source. Note that I had to
apt-cyg install mercurial
, though (with my Cygwin setup GUI/EXE in my Cygwin root directory, i.e.C:\cygwin64\setup-x86_64.exe
), I could also have done/setup-x86_64.exe install -q -P mercurial
.


cd ffmpeg_sources
hg clone https://bitbucket.org/multicoreware/x265




Running the
cmake
andmake
commands


cd x265/build/linux
PATH="$HOME/programs/ffmpeg/bin:$PATH" \
 cmake -G "Unix Makefiles" \
 -DCMAKE_INSTALL_PREFIX="$HOME/programs/ffmpeg/ffmpeg_build" \
 -DENABLE_SHARED=OFF \
 -DCMAKE_EXE_LINKER_FLAGS="-static" \
 ../../source
PATH="$HOME/programs/ffmpeg/bin:$PATH" make -j $(nproc)
make install




It was the last part (actually the very last line) of the
make install
output that worried me. Here is the whole output - it's not very long.


make[1]: Entering directory '/home/me/programs/ffmpeg/ffmpeg_sources/x265/build/linux'
make[2]: Entering directory '/home/me/programs/ffmpeg/ffmpeg_sources/x265/build/linux'
make[2]: Leaving directory '/home/me/programs/ffmpeg/ffmpeg_sources/x265/build/linux'
[ 20%] Built target encoder
make[2]: Entering directory '/home/me/programs/ffmpeg/ffmpeg_sources/x265/build/linux'
make[2]: Leaving directory '/home/me/programs/ffmpeg/ffmpeg_sources/x265/build/linux'
[ 83%] Built target common
make[2]: Entering directory '/home/me/programs/ffmpeg/ffmpeg_sources/x265/build/linux'
make[2]: Leaving directory '/home/me/programs/ffmpeg/ffmpeg_sources/x265/build/linux'
[ 84%] Built target x265-static
make[2]: Entering directory '/home/me/programs/ffmpeg/ffmpeg_sources/x265/build/linux'
make[2]: Leaving directory '/home/me/programs/ffmpeg/ffmpeg_sources/x265/build/linux'
[100%] Built target cli
make[1]: Leaving directory '/home/me/programs/ffmpeg/ffmpeg_sources/x265/build/linux'
Install the project...
-- Install configuration: "Release"
-- Installing: /home/me/programs/ffmpeg/ffmpeg_build/lib/libx265.a
-- Installing: /home/me/programs/ffmpeg/ffmpeg_build/include/x265.h
-- Installing: /home/me/programs/ffmpeg/ffmpeg_build/include/x265_config.h
-- Installing: /home/me/programs/ffmpeg/ffmpeg_build/lib/pkgconfig/x265.pc
-- Installing: /home/me/programs/ffmpeg/ffmpeg_build/bin/x265.exe




As discussed in the TL ;DR section, I expected to see
x265.exe
at


home/me/programs/ffmpeg/bin/x265.exe



rather than the path given on the last line of output,



/home/me/programs/ffmpeg/ffmpeg_build/bin/x265.exe



This worries me especially because the first part of the
ffmpeg
install command that my instructions inform me to run is


PATH="$HOME/programs/ffmpeg/bin:$PATH" \
PKG_CONFIG_PATH="$HOME/programs/ffmpeg/ffmpeg_build/lib/pkgconfig" \
 ./configure \
 --prefix="$HOME/programs/ffmpeg/ffmpeg_build" \
 --extra-cflags="-I$HOME/programs/ffmpeg/ffmpeg_build/include" \
 --extra-ldflags="-L$HOME/programs/ffmpeg/ffmpeg_build/lib" \
 --bindir="$HOME/programs/ffmpeg/bin" \




... and on it goes ...



It would seem to me that the
.configure
script forffmpeg
won't find thex265
executable, since it's not in thebindir
.


I'll repeat my two-part question from before :



- 

- How can I change my
cmake
command so that myx265.exe
file ends up in$HOME/programs/ffmpeg/bin
with the proper linking, rather than$HOME/programs/ffmpeg/ffmpeg_build/bin
?





What I'm looking for here is something akin to the
--bindir
flag frommake
's./confiure
.


- 

- Would the build/linker/whatever figure things out for the
ffmpeg
build ?





I want to know the answer to question number 1 regardless of the answer to question number 2. I haven't used
cmake
with the-DVAR=var
flags before, and I'd like to take this opportunity to learn.




Where I've Looked & What I've Tried



I first started with the
man
page and the--help
forcmake
. That was scary. I was hoping that I'd find something useful around theCMAKE_INSTALL_PREFIX
stuff, but I wasn't sure what to make of it.


I tried
grep
ing throughcmake --help-full
(with 50 lines before and after whatever I was searching for), but got tripped up by the complexity. I've only used basiccmake
stuff, before, and I got more than a little lost.


Even with the
--help
, I don't know if I need to look at thehelp-manual
, thehelp-command
, thehelp-module
, thehelp-policy
, thehelp-variable
, or something else.


It seemed to me, in reading, that a "binary directory" is the top of the "build", whereas I thought it would be the dir named
bin
... I couldn't tell what things were meant to be used by the person creating the package rather than by me, who am trying to make/build the package from the command line.


I looked through what seemed to be a
cmake
wiki's Useful Variables page (archived), as well as at this thread at cmake.org (archived), which, along with this SO source and this and this and this and this SO sources, seemed to suggest using theCMAKE_RUNTIME_OUTPUT_DIRECTORY
variable (since theEXECUTABLE_OUTPUT-DIRECTORY
variable has been superseded by it). By the way, I couldn't tell which things should be used by the creator of the package vs. the consumer of the package - the consumer being me. I tried with


PATH="$HOME/programs/ffmpeg/bin:$PATH" \
 cmake -G "Unix Makefiles" \
 -DCMAKE_INSTALL_PREFIX="$HOME/programs/ffmpeg/ffmpeg_build" \
 -DCMAKE_RUNTIME_OUTPUT_DIRECTORY="$HOME/programs/ffmpeg/bin" \
 -DENABLE_SHARED=OFF \
 -DCMAKE_EXE_LINKER_FLAGS="-static" 
 ../../source
PATH="$HOME/




and have thought about fifty-or-so other -DVAR variables, but with any I have tried, I still get the same result. I still get the executable in what seems to be the wrong place.





System Details



$ date && date +'%s'
Tue, May 5, 2020 11:14:40 AM
1588698880
$ uname -a
CYGWIN_NT-10.0 MACHINE 3.1.4(0.340/5/3) 2020-02-19 08:49 x86_64 Cygwin
$ cmake --version
cmake version 3.14.5

CMake suite maintained and supported by Kitware (kitware.com/cmake).
$ bash --version | head -n 1
GNU bash, version 4.4.12(3)-release (x86_64-unknown-cygwin)
$ gcc --version | head -n 1
gcc (GCC) 9.3.0
$ g++ --version | head -n 1
g++ (GCC) 9.3.0
$ make --version | head -n 2
GNU Make 4.3
Built for x86_64-pc-cygwin



-
-
Repair mpeg files using ffmpeg
27 février 2014, par rsdrsdI have a bunch of mpeg files which are some how invalid or incorrect. I can play the files in different media players but when I upload the files and they should automagically be converted. It takes a very long time to create screenshots and it creates about 10000 screenshots instead of the 50 to be expected. The command is part of an automatic conversion app. With mp4 and other files it works great but whit mpeg it doesn't work as expected. The creation of screenshots eats up all memory and processor power.
For creating screenshots I have tried the following :
ffmpeg -y -i /input/file.mpeg -f image2 -aspect 16:9 -bt 20M -vsync passthrough -vf select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)' /output/file-%05d.jpg
this just creates 2 screenshots while I expect 50 or so. The following command :
ffmpeg -y -i /input/file.mpeg -f image2 -vf fps=fps=1/10 -aspect 16:9 -vsync passthrough -bt 20M /output/file-%05d.jpg
gave me errors about buffers :
ffmpeg version N-39361-g1524b0f Copyright (c) 2000-2014 the FFmpeg developers
built on Feb 26 2014 23:46:40 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
configuration: --prefix=/home/example/ffmpeg_build --extra-cflags=-I/home/example/ffmpeg_build/include --extra-ldflags=-L/home/example/ffmpeg_build/lib --bindir=/home/example/bin --extra-libs=-ldl --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libfreetype --enable-libspeex --enable-libtheora
libavutil 52. 66.100 / 52. 66.100
libavcodec 55. 52.102 / 55. 52.102
libavformat 55. 33.100 / 55. 33.100
libavdevice 55. 10.100 / 55. 10.100
libavfilter 4. 2.100 / 4. 2.100
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 18.100 / 0. 18.100
libpostproc 52. 3.100 / 52. 3.100
[mp3 @ 0x200d7c0] Header missing
[mpegts @ 0x2008a60] DTS discontinuity in stream 0: packet 6 with DTS 34185, packet 7 with DTS 8589926735
[mpegts @ 0x2008a60] Invalid timestamps stream=0, pts=7157, dts=8589932741, size=150851
Input #0, mpegts, from '/home/example/app/uploads/21.mpeg':
Duration: 00:03:14.75, start: 0.213000, bitrate: 26112 kb/s
Program 1
Stream #0:0[0x3e9]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv), 1440x1080 [SAR 4:3 DAR 16:9], max. 25000 kb/s, 29.97 fps, 60 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0x3ea]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 384 kb/s
[swscaler @ 0x1ff9860] deprecated pixel format used, make sure you did set range correctly
Output #0, image2, to '/home/example/app/uploads/21-%05d.jpg':
Metadata:
encoder : Lavf55.33.100
Stream #0:0: Video: mjpeg, yuvj420p, 1440x1080 [SAR 4:3 DAR 16:9], q=2-31, 200 kb/s, 90k tbn, 0.10 tbc
Stream mapping:
Stream #0:0 -> #0:0 (mpeg2video -> mjpeg)
Press [q] to stop, [?] for help
[mpegts @ 0x2008a60] Invalid timestamps stream=0, pts=7157, dts=8589932741, size=150851
[output stream 0:0 @ 0x1ff2ba0] 100 buffers queued in output stream 0:0, something may be wrong.
[output stream 0:0 @ 0x1ff2ba0] 1000 buffers queued in output stream 0:0, something may be wrong.and it creates about 10000 screenshots while I expect 50.
Now I have read some where on how to repair some broken files. For this I have the following command :
ffmpeg -y -i input.mpeg -codec:v copy -codec:a copy output.mpeg
This however creates a file somewhat smaller, but if I run the same command on the output again, I would expect that it creates the same file, but the following command
ffmpeg -y -i output.mpeg -codec:v copy -codec:a copy output2.mpeg
returns a file which is much smaller and runs for only a few seconds while the original was about 3 minutes.
If I run the "repair" commands for a not broken mpeg it results the first time I run the command in a much smaller file. With ffprobe I checked what changed but the only thing that changes is MPEG-TS to MPEG-PS.
If I run the command over an mp4 file it results in exactly the same file as expected. Does someone have a clue of what is going wrong. It is boggling me now for about two days and I really have no clue. Or does someone have a good suggestion on how to extract screenshots every 10 seconds without creating too much screenshots and eating up all memory and processor power.