
Recherche avancée
Autres articles (65)
-
Personnaliser les catégories
21 juin 2013, parFormulaire de création d’une catégorie
Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
On peut modifier ce formulaire dans la partie :
Administration > Configuration des masques de formulaire.
Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...) -
Gestion des droits de création et d’édition des objets
8 février 2011, parPar défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;
-
Diogene : création de masques spécifiques de formulaires d’édition de contenus
26 octobre 2010, parDiogene est un des plugins ? SPIP activé par défaut (extension) lors de l’initialisation de MediaSPIP.
A quoi sert ce plugin
Création de masques de formulaires
Le plugin Diogène permet de créer des masques de formulaires spécifiques par secteur sur les trois objets spécifiques SPIP que sont : les articles ; les rubriques ; les sites
Il permet ainsi de définir en fonction d’un secteur particulier, un masque de formulaire par objet, ajoutant ou enlevant ainsi des champs afin de rendre le formulaire (...)
Sur d’autres sites (4315)
-
Compress video FFMPEG doesn't work
13 février 2018, par Douglas AnunciaçãoI’m trying to compress video using FFMPEG and this library : https://github.com/guardianproject/android-ffmpeg-java
I imported ffmpeglib as a module in my project. This is the code is use to compress :
public class MainActivity extends Activity {
private ArrayList<Object> listVideoPaths = new ArrayList<>();<br />
<br />
@Override<br />
protected void onCreate(Bundle savedInstanceState) {<br />
super.onCreate(savedInstanceState);<br />
setContentView(R.layout.activity_main);<br />
<br />
getGalleryVideos();<br />
<br />
File videoFolderFile = new File("/storage/emulated/0/DCIM/Camera/");<br />
<br />
if(videoFolderFile.exists())<br />
Log.e("TEST FFMPEG", "video folder exist");<br />
else<br />
Log.e("TEST FFMPEG", "video folder DON'T exist");<br />
<br />
<br />
File videoInputFile = new File(listVideoPaths.get(0).toString());<br />
<br />
if(videoInputFile.exists())<br />
Log.e("TEST FFMPEG", "video input file exist");<br />
else<br />
Log.e("TEST FFMPEG", "video input file DON'T exist");<br />
<br />
File videoOutputFile = new File(videoFolderFile,"output.mp4");<br />
<br />
if(videoOutputFile.exists())<br />
Log.e("TEST FFMPEG", "video output file exist");<br />
else<br />
Log.e("TEST FFMPEG", "video output file DON'T exist");<br />
<br />
FfmpegController ffmpegController;<br />
<br />
try {<br />
ffmpegController = new FfmpegController(this,videoFolderFile);<br />
<br />
Clip mediaIn = new Clip();<br />
<br />
mediaIn.path = videoInputFile.getAbsolutePath();<br />
<br />
mediaIn.videoFps = "25";<br />
<br />
ffmpegController.convertToMPEG(mediaIn, videoOutputFile.getAbsolutePath(), new ShellUtils.ShellCallback() {<br />
<br />
@Override<br />
public void shellOut(String shellLine) {<br />
Log.e("TEST FFMPEG", "shellOut - " + shellLine);<br />
}<br />
<br />
@Override<br />
public void processComplete(int exitValue) {<br />
Log.e("TEST FFMPEG", "proccess complete - " + exitValue);<br />
}<br />
});<br />
<br />
<br />
} catch (IOException e) {<br />
e.printStackTrace();<br />
} catch (Exception e) {<br />
e.printStackTrace();<br />
}finally {<br />
<br />
if(videoOutputFile.exists())<br />
Log.e("TEST FFMPEG", "finished ffmpeg ---> video output file exist");<br />
else<br />
Log.e("TEST FFMPEG", "finished ffmpeg ---> video output file DON'T exist");<br />
<br />
}<br />
}<br />
<br />
private void getGalleryVideos(){<br />
<br />
Cursor videoCursor = null;<br />
<br />
try {<br />
<br />
final String[] columns = { Media.DATA,<br />
Media._ID,<br />
Media.DATE_ADDED };<br />
<br />
final String orderBy = Media.DATE_ADDED;<br />
<br />
videoCursor = getContentResolver().query(<br />
MediaStore.Video.Media.EXTERNAL_CONTENT_URI, columns,<br />
null, null, orderBy);<br />
<br />
if (videoCursor != null &amp;&amp; videoCursor.getCount() > 0) {<br />
<br />
while (videoCursor.moveToNext()) {<br />
<br />
int dataColumnIndex = videoCursor<br />
.getColumnIndex(Media.DATA);<br />
<br />
listVideoPaths.add(videoCursor<br />
.getString(dataColumnIndex));<br />
<br />
}<br />
<br />
}<br />
<br />
Collections.sort(listVideoPaths,new Comparator());<br />
<br />
} catch (Exception e) {<br />
<br />
e.printStackTrace();<br />
<br />
} finally {<br />
<br />
if (videoCursor != null) {<br />
<br />
if (!videoCursor.isClosed()) {<br />
<br />
videoCursor.close();<br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
<br />
}<br />
</code></pre><br />
<br />
<p>I get no error but the video doesn't play. The log file is:</p><br />
<br />
<blockquote><br />
<p>3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
video folder exist 07-30 14:31:57.389<br><br />
3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
video input file exist 07-30 14:31:57.389<br><br />
3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
video output file DON'T exist 07-30 14:31:58.363<br><br />
3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut -<br />
/data/data/douglasanunciacao.androidffmpegjavateste/app_bin/ffmpeg -y<br />
-i /storage/emulated/0/DCIM/Camera/VID_20150730_142330563.mp4 -f mpeg /storage/emulated/0/DCIM/Camera/output.mp4 07-30 14:31:58.385<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - WARNING: linker:<br />
/data/data/douglasanunciacao.androidffmpegjavateste/app_bin/ffmpeg has<br />
text relocations. This is wasting memory and prevents security<br />
hardening. Please fix. 07-30 14:31:58.390<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg<br />
developers 07-30 14:31:58.391<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - built on Dec 22 2014 12:52:34 with gcc 4.6 20120106<br />
(prerelease) 07-30 14:31:58.391<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - configuration: --arch=arm --cpu=cortex-a8<br />
--target-os=linux --enable-runtime-cpudetect --prefix=/data/data/info.guardianproject.ffmpeg/app_opt --enable-pic --disable-shared --enable-static --cross-prefix=/home/n8fr8/dev/android/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-<br />
--sysroot=/home/n8fr8/dev/android/ndk/platforms/android-16/arch-arm --extra-cflags='-I../x264 -mfloat-abi=softfp -mfpu=neon -fPIE -pie' --extra-ldflags='-L../x264 -fPIE -pie' --enable-version3 --enable-gpl --disable-doc --enable-yasm --enable-decoders --enable-encoders --enable-muxers --enable-demuxers --enable-parsers --enable-protocols --enable-filters --enable-avresample --enable-libfreetype --disable-indevs --enable-indev=lavfi --disable-outdevs --enable-hwaccels --enable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-network --enable-libx264 --enable-zlib 07-30 14:31:58.391<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libavutil 51. 54.100 / 51. 54.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libavcodec 54. 23.100 / 54. 23.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libavformat 54. 6.100 / 54. 6.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libavdevice 54. 0.100 / 54. 0.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libavfilter 2. 77.100 / 2. 77.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libswscale 2. 1.100 / 2. 1.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libswresample 0. 15.100 / 0. 15.100 07-30 14:31:58.391<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - libpostproc 52. 0.100 / 52. 0.100 07-30 14:31:58.868<br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Input #0, mov,mp4,m4a,3gp,3g2,mj2, from<br />
'/storage/emulated/0/DCIM/Camera/VID_20150730_142330563.mp4': 07-30<br />
14:31:58.869 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Metadata: 07-30 14:31:58.869<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - major_brand : mp42 07-30 14:31:58.870<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - minor_version : 0 07-30 14:31:58.871<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - compatible_brands: isommp42 07-30 14:31:58.872<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.873 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Duration: 00:00:01.89, start: 0.000000,<br />
bitrate: 17571 kb/s 07-30 14:31:58.874<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Stream #0:0(eng): Video: h264 (High) (avc1 /<br />
0x31637661), yuv420p, 1920x1080, 15874 kb/s, SAR 65536:65536 DAR 16:9,<br />
23.90 fps, 23.92 tbr, 90k tbn, 180k tbc 07-30 14:31:58.875 3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Metadata: 07-30 14:31:58.876<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - rotate : 270 07-30 14:31:58.877<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.878 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - handler_name : VideoHandle 07-30<br />
14:31:58.878 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Stream #0:1(eng): Audio: aac (mp4a /<br />
0x6134706D), 48000 Hz, stereo, s16, 127 kb/s 07-30 14:31:58.878<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Metadata: 07-30 14:31:58.878<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.878 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - handler_name : SoundHandle 07-30<br />
14:31:58.882 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - [buffer @ 0xb5cce0a0] w:1920 h:1080<br />
pixfmt:yuv420p tb:1/90000 sar:65536/65536 sws_param:flags=2 07-30<br />
14:31:58.882 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - [buffersink @ 0xb5cce0d0] No opaque field<br />
provided 07-30 14:31:58.891<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - [mpeg @ 0xb5c3df00] VBV buffer size not set, muxing may<br />
fail 07-30 14:31:58.892<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Output #0, mpeg, to<br />
'/storage/emulated/0/DCIM/Camera/output.mp4': 07-30 14:31:58.894<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Metadata: 07-30 14:31:58.895<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - major_brand : mp42 07-30 14:31:58.896<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - minor_version : 0 07-30 14:31:58.896<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - compatible_brands: isommp42 07-30 14:31:58.897<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.898 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - encoder : Lavf54.6.100 07-30<br />
14:31:58.898 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Stream #0:0(eng): Video: mpeg1video,<br />
yuv420p, 1920x1080 [SAR 65536:65536 DAR 16:9], q=2-31, 200 kb/s, 90k<br />
tbn, 23.98 tbc 07-30 14:31:58.899<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Metadata: 07-30 14:31:58.899<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - rotate : 270 07-30 14:31:58.900<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.901 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - handler_name : VideoHandle 07-30<br />
14:31:58.906 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Stream #0:1(eng): Audio: mp2, 48000 Hz,<br />
stereo, s16, 128 kb/s 07-30 14:31:58.906<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Metadata: 07-30 14:31:58.906<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - creation_time : 2015-07-30 17:23:34 07-30<br />
14:31:58.906 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - handler_name : SoundHandle 07-30<br />
14:31:58.906 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Stream mapping: 07-30 14:31:58.906<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - Stream #0:0 -> #0:0 (h264 -> mpeg1video) 07-30<br />
14:31:58.906 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Stream #0:1 -> #0:1 (aac -> mp2) 07-30<br />
14:31:58.906 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - Press [q] to stop, [?] for help 07-30<br />
14:31:59.824 3096-3182/douglasanunciacao.androidffmpegjavateste<br />
E/TESTE FFMPEG﹕ shellOut - frame= 4 fps=0.0 q=2.0 size= 0kB<br />
time=00:00:00.08 bitrate= 0.0kbits/s 07-30 14:32:02.029<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 8 fps=2.7 q=10.5 size= 4kB time=00:00:00.25<br />
bitrate= 130.9kbits/s 07-30 14:32:02.536<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 13 fps=3.7 q=25.2 size= 696kB time=00:00:00.45<br />
bitrate=12427.3kbits/s 07-30 14:32:03.045<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 18 fps=4.4 q=31.0 size= 750kB time=00:00:00.66<br />
bitrate=9206.8kbits/s 07-30 14:32:03.582<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 23 fps=5.0 q=31.0 size= 786kB time=00:00:00.87<br />
bitrate=7351.4kbits/s 07-30 14:32:04.140<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 28 fps=5.5 q=31.0 size= 862kB time=00:00:01.08<br />
bitrate=6511.8kbits/s 07-30 14:32:05.239<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 30 fps=4.8 q=31.0 size= 876kB time=00:00:01.16<br />
bitrate=6144.9kbits/s 07-30 14:32:05.746<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 35 fps=5.2 q=31.0 size= 910kB time=00:00:01.37<br />
bitrate=5416.2kbits/s 07-30 14:32:06.317<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 41 fps=5.6 q=31.0 size= 972kB time=00:00:01.62<br />
bitrate=4895.2kbits/s 07-30 14:32:06.832<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - frame= 45 fps=5.7 q=31.0 Lsize= 1022kB<br />
time=00:00:01.83 bitrate=4562.1kbits/s 07-30 14:32:06.832<br><br />
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
shellOut - video:984kB audio:30kB global headers:0kB muxing overhead<br />
0.756932% 07-30 14:32:06.858 3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
proccess complete - 0 07-30 14:32:06.858<br><br />
3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG﹕<br />
terminou o ffmpeg ---> video output file exist</p><br />
</blockquote><br />
<br />
<p>Does anyone knows how to solve this problem? Thanks in advance.</p> -
FFmpeg image to video conversion error : [image2] Opening file for reading
14 février 2018, par user1690179I am running ffmpeg on an AWS Lambda instance. The Lambda function takes an input image and transcodes it into a video segment using ffmpeg :
ffmpeg -loop 1 -i /tmp/photo-SNRUR7ZS13.jpg -c:v libx264 -t 7.00 -pix_fmt yuv420p -vf scale=1280x720 /tmp/output.mp4
I am seeing inconsistent behavior where sometimes the output video is shorter than the specified duration. This happens inconsistently to random images. The same exact image sometimes renders correctly, and sometimes is cut short.
This behavior only happens on Lambda. I am not able to replicate this on my local computer, or on a dedicated EC2 instance with the same environment that runs on lambda.
I noticed that when the output video is short, the ffmpeg log is different. The main difference are repeated
[image2 @ 0x4b11140] Opening '/tmp/photo-2HD2Z3UN3W.jpg' for reading
lines. See ffmpeg logs below.Normal execution with the correct output video length :
ffmpeg -loop 1 -i /tmp/photo-SNRUR7ZS13.jpg -c:v libx264 -t 7.00 -pix_fmt yuv420p -vf scale=1280x720 /tmp/video-TMB6RNO0EE.mp4
ffmpeg version N-89773-g7fcbebbeaf-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 6.4.0 (Debian 6.4.0-11) 20171206
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg
libavutil 56. 7.100 / 56. 7.100
libavcodec 58. 9.100 / 58. 9.100
libavformat 58. 3.100 / 58. 3.100
libavdevice 58. 0.100 / 58. 0.100
libavfilter 7. 11.101 / 7. 11.101
libswscale 5. 0.101 / 5. 0.101
libswresample 3. 0.101 / 3. 0.101
libpostproc 55. 0.100 / 55. 0.100
Input #0, image2, from '/tmp/photo-SNRUR7ZS13.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: 18703 kb/s
Stream #0:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 687x860 [SAR 200:200 DAR 687:860], 25 fps, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[swscaler @ 0x5837900] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 0x51c2340] using SAR=1477/3287
[libx264 @ 0x51c2340] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x51c2340] profile High, level 3.1
[libx264 @ 0x51c2340] 264 - core 155 r61 b00bcaf - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '/tmp/video-TMB6RNO0EE.mp4':
Metadata:
encoder : Lavf58.3.100
Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 6183:13760 DAR 687:860], q=-1--1, 25 fps, 12800 tbn, 25 tbc
Metadata:
encoder : Lavc58.9.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame= 49 fps=0.0 q=28.0 size= 0kB time=-00:00:00.03 bitrate=N/A speed=N/A
frame= 69 fps= 66 q=28.0 size= 0kB time=00:00:00.76 bitrate= 0.5kbits/s speed=0.728x
frame= 89 fps= 57 q=28.0 size= 0kB time=00:00:01.56 bitrate= 0.2kbits/s speed=0.998x
frame= 109 fps= 53 q=28.0 size= 0kB time=00:00:02.36 bitrate= 0.2kbits/s speed=1.14x
frame= 129 fps= 50 q=28.0 size= 0kB time=00:00:03.16 bitrate= 0.1kbits/s speed=1.22x
frame= 148 fps= 48 q=28.0 size= 0kB time=00:00:03.92 bitrate= 0.1kbits/s speed=1.27x
frame= 168 fps= 47 q=28.0 size= 0kB time=00:00:04.72 bitrate= 0.1kbits/s speed=1.31x
No more output streams to write to, finishing.
frame= 175 fps= 39 q=-1.0 Lsize= 94kB time=00:00:06.88 bitrate= 112.2kbits/s speed=1.54x
video:91kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.161261%
Input file #0 (/tmp/photo-SNRUR7ZS13.jpg):
Input stream #0:0 (video): 176 packets read (16459168 bytes); 176 frames decoded;
Total: 176 packets (16459168 bytes) demuxed
Output file #0 (/tmp/video-TMB6RNO0EE.mp4):
Output stream #0:0 (video): 175 frames encoded; 175 packets muxed (93507 bytes);
Total: 175 packets (93507 bytes) muxed
[libx264 @ 0x51c2340] frame I:1 Avg QP:14.33 size: 73084
[libx264 @ 0x51c2340] frame P:44 Avg QP:14.09 size: 302
[libx264 @ 0x51c2340] frame B:130 Avg QP:23.31 size: 50
[libx264 @ 0x51c2340] consecutive B-frames: 0.6% 1.1% 0.0% 98.3%
[libx264 @ 0x51c2340] mb I I16..4: 3.3% 84.5% 12.1%
[libx264 @ 0x51c2340] mb P I16..4: 0.0% 0.0% 0.0% P16..4: 3.2% 0.1% 0.0% 0.0% 0.0% skip:96.7%
[libx264 @ 0x51c2340] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.4% 0.0% 0.0% direct: 0.0% skip:99.6% L0:31.2% L1:68.8% BI: 0.0%
[libx264 @ 0x51c2340] 8x8 transform intra:84.5% inter:98.8%
[libx264 @ 0x51c2340] coded y,uvDC,uvAC intra: 95.1% 63.9% 51.6% inter: 0.1% 0.6% 0.0%
[libx264 @ 0x51c2340] i16 v,h,dc,p: 26% 21% 4% 49%
[libx264 @ 0x51c2340] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 27% 21% 3% 5% 6% 6% 4% 9%
[libx264 @ 0x51c2340] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 36% 10% 4% 7% 5% 6% 2% 6%
[libx264 @ 0x51c2340] i8c dc,h,v,p: 51% 29% 16% 4%
[libx264 @ 0x51c2340] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x51c2340] ref P L0: 96.5% 0.0% 3.3% 0.2%
[libx264 @ 0x51c2340] ref B L0: 42.4% 57.6%
[libx264 @ 0x51c2340] ref B L1: 97.0% 3.0%
[libx264 @ 0x51c2340] kb/s:106.08Log from a short video :
ffmpeg -framerate 25 -y -loop 1 -i /tmp/photo-2HD2Z3UN3W.jpg -t 15.00 -filter_complex "[0:v]crop=h=ih:w='if(gt(a,16/9),ih*16/9,iw)':y=0:x='if(gt(a,16/9),(ow-iw)/2,0)'[tmp];[tmp]scale=-1:4000,crop=w=iw:h='min(iw*9/16,ih)':x=0:y='0.17*ih-((t/15.00)*min(0.17*ih,(ih-oh)/6))',trim=duration=15.00[tmp1];[tmp1]zoompan=z='if(lte(pzoom,1.0),1.15,max(1.0,pzoom-0.0005))':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=1,setsar=sar=1:1[animated];[animated]fade=out:st=12.00:d=3.00:c=#000000[animated]" -map "[animated]" -pix_fmt yuv420p -s 1280x720 -y /tmp/video-QB1JCDT021.mp4
ffmpeg version N-89773-g7fcbebbeaf-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 6.4.0 (Debian 6.4.0-11) 20171206
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg
libavutil 56. 7.100 / 56. 7.100
libavcodec 58. 9.100 / 58. 9.100
libavformat 58. 3.100 / 58. 3.100
libavdevice 58. 0.100 / 58. 0.100
libavfilter 7. 11.101 / 7. 11.101
libswscale 5. 0.101 / 5. 0.101
libswresample 3. 0.101 / 3. 0.101
libpostproc 55. 0.100 / 55. 0.100
Input #0, image2, from '/tmp/photo-2HD2Z3UN3W.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: 373617 kb/s
Stream #0:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 1936x2592 [SAR 72:72 DAR 121:162], 25 fps, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
Stream #0:0 (mjpeg) -> crop
fade -> Stream #0:0 (libx264)
Press [q] to stop, [?] for help
[swscaler @ 0x4d63b40] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x4df7340] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x50e97c0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x50e97c0] Warning: data is not aligned! This can lead to a speed loss
[libx264 @ 0x4b17480] using SAR=1/1
[libx264 @ 0x4b17480] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x4b17480] profile High, level 3.1
[libx264 @ 0x4b17480] 264 - core 155 r61 b00bcaf - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '/tmp/video-QB1JCDT021.mp4':
Metadata:
encoder : Lavf58.3.100
Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 12800 tbn, 25 tbc
Metadata:
encoder : Lavc58.9.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
[swscaler @ 0x5bd0380] deprecated pixel format used, make sure you did set range correctly
debug=1
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[image2 @ 0x4b11140] Opening '/tmp/photo-2HD2Z3UN3W.jpg' for reading
[AVIOContext @ 0x4b6ecc0] Statistics: 1868086 bytes read, 0 seeks
[mjpeg @ 0x4b14940] marker=d8 avail_size_in_buf=1868084
[mjpeg @ 0x4b14940] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x4b14940] marker=e0 avail_size_in_buf=1868082
[mjpeg @ 0x4b14940] marker parser used 16 bytes (128 bits)
[mjpeg @ 0x4b14940] marker=db avail_size_in_buf=1868064
[mjpeg @ 0x4b14940] index=0
[mjpeg @ 0x4b14940] qscale[0]: 0
[mjpeg @ 0x4b14940] marker parser used 67 bytes (536 bits)
[mjpeg @ 0x4b14940] marker=db avail_size_in_buf=1867995
[mjpeg @ 0x4b14940] index=1
[mjpeg @ 0x4b14940] qscale[1]: 1
[mjpeg @ 0x4b14940] marker parser used 67 bytes (536 bits)
[mjpeg @ 0x4b14940] marker=c0 avail_size_in_buf=1867926
[mjpeg @ 0x4b14940] sof0: picture: 1936x2592
[mjpeg @ 0x4b14940] component 0 1:1 id: 0 quant:0
[mjpeg @ 0x4b14940] component 1 1:1 id: 1 quant:1
[mjpeg @ 0x4b14940] component 2 1:1 id: 2 quant:1
[mjpeg @ 0x4b14940] pix fmt id 11111100
[mjpeg @ 0x4b14940] marker parser used 17 bytes (136 bits)
[mjpeg @ 0x4b14940] marker=c4 avail_size_in_buf=1867907
[mjpeg @ 0x4b14940] class=0 index=0 nb_codes=11
[mjpeg @ 0x4b14940] marker parser used 30 bytes (240 bits)
[mjpeg @ 0x4b14940] marker=c4 avail_size_in_buf=1867875
[mjpeg @ 0x4b14940] class=1 index=0 nb_codes=242
[mjpeg @ 0x4b14940] marker parser used 82 bytes (656 bits)
[mjpeg @ 0x4b14940] marker=c4 avail_size_in_buf=1867791
[mjpeg @ 0x4b14940] class=0 index=1 nb_codes=8
[mjpeg @ 0x4b14940] marker parser used 27 bytes (216 bits)
[mjpeg @ 0x4b14940] marker=c4 avail_size_in_buf=1867762
[mjpeg @ 0x4b14940] class=1 index=1 nb_codes=241
[mjpeg @ 0x4b14940] marker parser used 51 bytes (408 bits)
[mjpeg @ 0x4b14940] escaping removed 7149 bytes
[mjpeg @ 0x4b14940] marker=da avail_size_in_buf=1867709
[mjpeg @ 0x4b14940] component: 0
[mjpeg @ 0x4b14940] component: 1
[mjpeg @ 0x4b14940] component: 2
[mjpeg @ 0x4b14940] marker parser used 1860559 bytes (14884468 bits)
[mjpeg @ 0x4b14940] marker=d9 avail_size_in_buf=0
[mjpeg @ 0x4b14940] decode frame unused 0 bytes
[swscaler @ 0x5bd42c0] deprecated pixel format used, make sure you did set range correctly
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[image2 @ 0x4b11140] Opening '/tmp/photo-2HD2Z3UN3W.jpg' for reading
[AVIOContext @ 0x4b6ecc0] Statistics: 1868086 bytes read, 0 seeks
[mjpeg @ 0x4b14940] marker=d8 avail_size_in_buf=1868084
[mjpeg @ 0x4b14940] marker parser used 0 bytes (0 bits)
[mjpeg @ 0x4b14940] marker=e0 avail_size_in_buf=1868082
[mjpeg @ 0x4b14940] marker parser used 16 bytes (128 bits)
[mjpeg @ 0x4b14940] marker=db avail_size_in_buf=1868064
[mjpeg @ 0x4b14940] index=0
[mjpeg @ 0x4b14940] qscale[0]: 0
[mjpeg @ 0x4b14940] marker parser used 67 bytes (536 bits)
[mjpeg @ 0x4b14940] marker=db avail_size_in_buf=1867995
[mjpeg @ 0x4b14940] index=1
[mjpeg @ 0x4b14940] qscale[1]: 1
[mjpeg @ 0x4b14940] marker parser used 67 bytes (536 bits)
[mjpeg @ 0x4b14940] marker=c0 avail_size_in_buf=1867926
[mjpeg @ 0x4b14940] sof0: picture: 1936x2592
[mjpeg @ 0x4b14940] component 0 1:1 id: 0 quant:0
[mjpeg @ 0x4b14940] component 1 1:1 id: 1 quant:1
[mjpeg @ 0x4b14940] component 2 1:1 id: 2 quant:1
[mjpeg @ 0x4b14940] pix fmt id 11111100
[mjpeg @ 0x4b14940] marker parser used 17 bytes (136 bits)
[mjpeg @ 0x4b14940] marker=c4 avail_size_in_buf=1867907
[mjpeg @ 0x4b14940] class=0 index=0 nb_codes=11
[mjpeg @ 0x4b14940] marker parser used 30 bytes (240 bits)
[mjpeg @ 0x4b14940] marker=c4 avail_size_in_buf=1867875
[mjpeg @ 0x4b14940] class=1 index=0 nb_codes=242
[mjpeg @ 0x4b14940] marker parser used 82 bytes (656 bits)
[mjpeg @ 0x4b14940] marker=c4 avail_size_in_buf=1867791
[mjpeg @ 0x4b14940] class=0 index=1 nb_codes=8
[mjpeg @ 0x4b14940] marker parser used 27 bytes (216 bits)
[mjpeg @ 0x4b14940] marker=c4 avail_size_in_buf=1867762
[mjpeg @ 0x4b14940] class=1 index=1 nb_codes=241
[mjpeg @ 0x4b14940] marker parser used 51 bytes (408 bits)
[mjpeg @ 0x4b14940] escaping removed 7149 bytes
[mjpeg @ 0x4b14940] marker=da avail_size_in_buf=1867709
[mjpeg @ 0x4b14940] component: 0
[mjpeg @ 0x4b14940] component: 1
[mjpeg @ 0x4b14940] component: 2
[mjpeg @ 0x4b14940] marker parser used 1860559 bytes (14884468 bits)
[mjpeg @ 0x4b14940] marker=d9 avail_size_in_buf=0
[mjpeg @ 0x4b14940] decode frame unused 0 bytes
[swscaler @ 0x5bd8200] deprecated pixel format used, make sure you did set range correctly
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
...
...
...As requested, here is a link to the full log. In this log - ffmpeg renders only 323 out of 375 frames.
The
Opening '/tmp/photo-2HD2Z3UN3W.jpg'
segment repeats many many times until it finally renders out a short video. Does anyone have insight into why it keeps opening the image file ? This must have something to do with the underlying issue. -
FFmpeg - feed raw frames via pipe - FFmpeg does not detect pipe closure
8 septembre 2018, par RumbleIm trying to follow these examples from C++ in Windows. Phyton Example C# Example
I have an application that produces raw frames that shall be encoded with FFmpeg.
The raw frames are transfered via IPC pipe to FFmpegs STDIN. That is working as expected, FFmpeg even displays the number of frames currently available.The problem occours when we are done sending frames. When I close the write end of the pipe I would expect FFmpeg to detect that, finish up and output the video. But that does not happen. FFmpeg stays open and seems to wait for more data.
I made a small test project in VisualStudio.
#include "stdafx.h"
//// stdafx.h
//#include "targetver.h"
//#include
//#include
//#include <iostream>
#include "Windows.h"
#include <cstdlib>
using namespace std;
bool WritePipe(void* WritePipe, const UINT8 *const Buffer, const UINT32 Length)
{
if (WritePipe == nullptr || Buffer == nullptr || Length == 0)
{
cout << __FUNCTION__ << ": Some input is useless";
return false;
}
// Write to pipe
UINT32 BytesWritten = 0;
UINT8 newline = '\n';
bool bIsWritten = WriteFile(WritePipe, Buffer, Length, (::DWORD*)&BytesWritten, nullptr);
cout << __FUNCTION__ << " Bytes written to pipe " << BytesWritten << endl;
//bIsWritten = WriteFile(WritePipe, &newline, 1, (::DWORD*)&BytesWritten, nullptr); // Do we need this? Actually this should destroy the image.
FlushFileBuffers(WritePipe); // Do we need this?
return bIsWritten;
}
#define PIXEL 80 // must be multiple of 8. Otherwise we get warning: Bytes are not aligned
int main()
{
HANDLE PipeWriteEnd = nullptr;
HANDLE PipeReadEnd = nullptr;
{
// create us a pipe for inter process communication
SECURITY_ATTRIBUTES Attr = { sizeof(SECURITY_ATTRIBUTES), NULL, true };
if (!CreatePipe(&PipeReadEnd, &PipeWriteEnd, &Attr, 0))
{
cout << "Could not create pipes" << ::GetLastError() << endl;
system("Pause");
return 0;
}
}
// Setup the variables needed for CreateProcess
// initialize process attributes
SECURITY_ATTRIBUTES Attr;
Attr.nLength = sizeof(SECURITY_ATTRIBUTES);
Attr.lpSecurityDescriptor = NULL;
Attr.bInheritHandle = true;
// initialize process creation flags
UINT32 CreateFlags = NORMAL_PRIORITY_CLASS;
CreateFlags |= CREATE_NEW_CONSOLE;
// initialize window flags
UINT32 dwFlags = 0;
UINT16 ShowWindowFlags = SW_HIDE;
if (PipeWriteEnd != nullptr || PipeReadEnd != nullptr)
{
dwFlags |= STARTF_USESTDHANDLES;
}
// initialize startup info
STARTUPINFOA StartupInfo = {
sizeof(STARTUPINFO),
NULL, NULL, NULL,
(::DWORD)CW_USEDEFAULT,
(::DWORD)CW_USEDEFAULT,
(::DWORD)CW_USEDEFAULT,
(::DWORD)CW_USEDEFAULT,
(::DWORD)0, (::DWORD)0, (::DWORD)0,
(::DWORD)dwFlags,
ShowWindowFlags,
0, NULL,
HANDLE(PipeReadEnd),
HANDLE(nullptr),
HANDLE(nullptr)
};
LPSTR ffmpegURL = "\"PATHTOFFMPEGEXE\" -y -loglevel verbose -f rawvideo -vcodec rawvideo -framerate 1 -video_size 80x80 -pixel_format rgb24 -i - -vcodec mjpeg -framerate 1/4 -an \"OUTPUTDIRECTORY\"";
// Finally create the process
PROCESS_INFORMATION ProcInfo;
if (!CreateProcessA(NULL, ffmpegURL, &Attr, &Attr, true, (::DWORD)CreateFlags, NULL, NULL, &StartupInfo, &ProcInfo))
{
cout << "CreateProcess failed " << ::GetLastError() << endl;
}
//CloseHandle(ProcInfo.hThread);
// Create images and write to pipe
#define MYARRAYSIZE (PIXEL*PIXEL*3) // each pixel has 3 bytes
UINT8* Bitmap = new UINT8[MYARRAYSIZE];
for (INT32 outerLoopIndex = 9; outerLoopIndex >= 0; --outerLoopIndex) // frame loop
{
for (INT32 innerLoopIndex = MYARRAYSIZE - 1; innerLoopIndex >= 0; --innerLoopIndex) // create the pixels for each frame
{
Bitmap[innerLoopIndex] = (UINT8)(outerLoopIndex * 20); // some gray color
}
system("pause");
if (!WritePipe(PipeWriteEnd, Bitmap, MYARRAYSIZE))
{
cout << "Failed writing to pipe" << endl;
}
}
// Done sending images. Tell the other process. IS THIS NEEDED? HOW TO TELL FFmpeg WE ARE DONE?
//UINT8 endOfFile = 0xFF; // EOF = -1 == 1111 1111 for uint8
//if (!WritePipe(PipeWriteEnd, &endOfFile, 1))
//{
// cout << "Failed writing to pipe" << endl;
//}
//FlushFileBuffers(PipeReadEnd); // Do we need this?
delete Bitmap;
system("pause");
// clean stuff up
FlushFileBuffers(PipeWriteEnd); // Do we need this?
if (PipeWriteEnd != NULL && PipeWriteEnd != INVALID_HANDLE_VALUE)
{
CloseHandle(PipeWriteEnd);
}
// We do not want to destroy the read end of the pipe? Should not as that belongs to FFmpeg
//if (PipeReadEnd != NULL && PipeReadEnd != INVALID_HANDLE_VALUE)
//{
// ::CloseHandle(PipeReadEnd);
//}
return 0;
}
</cstdlib></iostream>And here the output of FFmpeg
ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 7.2.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth --enable-libmfx
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
[rawvideo @ 00000221ff992120] max_analyze_duration 5000000 reached at 5000000 microseconds st:0
Input #0, rawvideo, from 'pipe:':
Duration: N/A, start: 0.000000, bitrate: 153 kb/s
Stream #0:0: Video: rawvideo, 1 reference frame (RGB[24] / 0x18424752), rgb24, 80x80, 153 kb/s, 1 fps, 1 tbr, 1 tbn, 1 tbc
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> mjpeg (native))
[graph 0 input from stream 0:0 @ 00000221ff999c20] w:80 h:80 pixfmt:rgb24 tb:1/1 fr:1/1 sar:0/1 sws_param:flags=2
[auto_scaler_0 @ 00000221ffa071a0] w:iw h:ih flags:'bicubic' interl:0
[format @ 00000221ffa04e20] auto-inserting filter 'auto_scaler_0' between the filter 'Parsed_null_0' and the filter 'format'
[swscaler @ 00000221ffa0a780] deprecated pixel format used, make sure you did set range correctly
[auto_scaler_0 @ 00000221ffa071a0] w:80 h:80 fmt:rgb24 sar:0/1 -> w:80 h:80 fmt:yuvj444p sar:0/1 flags:0x4
Output #0, mp4, to 'c:/users/vr3/Documents/Guenni/sometest.mp4':
Metadata:
encoder : Lavf57.83.100
Stream #0:0: Video: mjpeg, 1 reference frame (mp4v / 0x7634706D), yuvj444p(pc), 80x80, q=2-31, 200 kb/s, 1 fps, 16384 tbn, 1 tbc
Metadata:
encoder : Lavc57.107.100 mjpeg
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
frame= 10 fps=6.3 q=1.6 size= 0kB time=00:00:09.00 bitrate= 0.0kbits/s speed=5.63xAs you can see in the last line of te FFmpeg output, the images got trough. 10 frames are available. But after closing the pipe, FFmpeg does not close, still expecting input.
As the linked examples show, this should be a valid method.
Trying for a week now...