
Recherche avancée
Autres articles (24)
-
Les tâches Cron régulières de la ferme
1er décembre 2010, parLa gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
Le super Cron (gestion_mutu_super_cron)
Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...) -
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 (...) -
Les formats acceptés
28 janvier 2010, parLes commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
ffmpeg -codecs ffmpeg -formats
Les format videos acceptés en entrée
Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
Les formats vidéos de sortie possibles
Dans un premier temps on (...)
Sur d’autres sites (6037)
-
Cannot merge VisualSampleEntry error while appending videos in MP4parser
13 août 2021, par Abhishek IppakayalI am creating four videos with ffmpeg and then i am appending them with MP4parser.
Details of four videos that i am creating with ffmpeg.


- 

- 1,2 video : created using one image




[-loop, 1, -i, Count_1627453922.jpg, -s, 720x1280, -vf, format=yuv420p,fps=25,fade=type=in:duration=1,fade=type=out:duration=1:start_time=1, -t, 2, -preset, ultrafast, CountImageVideo_1627453922.mp4]



- 

- 3,4 video : trimming 3 second video from an existing mp4 video




[-i, footages_5_1624263519549.mp4, -ss, 00:00:00, -to, 00:00:02, -s, 720x1280, -r, 25, -preset, ultrafast, One_1627453926.mp4]



Now i am trying to append all these videos with MP4Parser and getting below error :


java.io.IOException: Cannot merge VisualSampleEntry[com.googlecode.mp4parser.boxes.mp4.ESDescriptorBox@f3f76444] and VisualSampleEntry[com.googlecode.mp4parser.boxes.mp4.ESDescriptorBox@e20a2ed0]
 at com.googlecode.mp4parser.authoring.tracks.AppendTrack.mergeStsds(AppendTrack.java:116)
 at com.googlecode.mp4parser.authoring.tracks.AppendTrack.<init>(AppendTrack.java:59)
</init>


I have done some debugging and found something that can help understand error better.
Sample Description boxes of two videos


Two video tracks have different formats (MP4v & AVC1). I am new to ffmpeg and MP4parser so did not getting what i am doing wrong. Thanks ! in advance.


Logs of all video creation ffmpeg command and error of mp4parser


Copyright (c) 2000-2020 the FFmpeg developers
I: built with Android (6454773 based on r365631c2) clang version 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 98c855489587874b2a325e7a516b99d838599c6f) (based on LLVM 9.0.8svn)
I: configuration: --cross-prefix=i686-linux-android- --sysroot=/files/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/mobile-ffmpeg/prebuilt/android-x86/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=i686 --cpu=i686 --cc=i686-linux-android16-clang --cxx=i686-linux-android16-clang++ --extra-libs='-L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-x86/cpu-features/lib -lndk_compat' --target-os=android --disable-neon --disable-asm --disable-inline-asm --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --enable-shared --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-openssl --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gmp --enable-gnutls --enable-libmp3lame --enable-libass --enable-iconv --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libopencore-amrnb --enable-libshine --enable-libspeex --enable-libwavpack --enable-libkvazaar --enable-libilbc --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libaom --enable-libtwolame --disable-sdl2 --enable-libvo-amrwbenc --enable-zlib --enable-mediacodec
I: libavutil 56. 55.100 / 56. 55.100
I: libavcodec 58. 96.100 / 58. 96.100
I: libavformat 58. 48.100 / 58. 48.100
I: libavdevice 58. 11.101 / 58. 11.101
I: libavfilter 7. 87.100 / 7. 87.100
I: libswscale 5. 8.100 / 5. 8.100
I: libswresample 3. 8.100 / 3. 8.100
I: Input #0, png_pipe, from '1628829731.jpg':
I: Duration: 
I: N/A
I: , bitrate: 
I: N/A
I: Stream #0:0
I: : Video: png, rgb24(pc), 1280x592
I: , 
I: 25 fps, 
I: 25 tbr, 
I: 25 tbn, 
I: 25 tbc
I: Input #1, lavfi, from 'anullsrc':
I: Duration: 
I: N/A
I: , start: 
I: 0.000000
I: , bitrate: 
I: 705 kb/s
I: Stream #1:0
I: : Audio: pcm_u8, 44100 Hz, stereo, u8, 705 kb/s
W: Codec AVOption preset (Configuration preset) specified for output file #0 (FootageVideo_1628829747.mp4) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
I: Stream mapping:
I: Stream #0:0 -> #0:0
I: (png (native) -> mpeg4 (native))
I: Stream #1:0 -> #0:1
I: (pcm_u8 (native) -> aac (native))
I: Press [q] to stop, [?] for help
W: [graph 0 input from stream 0:0 @ 0xbdf3a220] sws_param option is deprecated and ignored
I: Output #0, mp4, to 'FootageVideo_1628829747.mp4':
I: Metadata:
I: encoder : 
I: Lavf58.48.100
I: Stream #0:0
I: : Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 1280x592, q=2-31, 200 kb/s
I: , 
I: 24 fps, 
I: 12288 tbn, 
I: 24 tbc
I: Metadata:
I: encoder : 
I: Lavc58.96.100 mpeg4
I: Side data:
I: 
I: cpb: 
I: bitrate max/min/avg: 0/0/200000 buffer size: 0 
I: vbv_delay: N/A
E: gnssSvStatusCb: a: input svInfo.flags is 8
E: gnssSvStatusCb: b: input svInfo.flags is 8
I: Stream #0:1
I: : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
I: Metadata:
I: encoder : 
I: Lavc58.96.100 aac
I: Background young concurrent copying GC freed 20080(1054KB) AllocSpace objects, 9(2100KB) LOS objects, 7% free, 26MB/29MB, paused 4.477ms total 113.190ms
I: frame= 9 fps=0.0 q=13.8 size= 0kB time=00:00:00.34 bitrate= 1.0kbits/s speed=0.665x 
I: frame= 24 fps= 23 q=24.9 size= 0kB time=00:00:00.97 bitrate= 0.4kbits/s speed=0.953x 
E: gnssSvStatusCb: a: input svInfo.flags is 8
E: gnssSvStatusCb: b: input svInfo.flags is 8
I: frame= 40 fps= 26 q=21.0 size= 0kB time=00:00:01.64 bitrate= 0.2kbits/s speed=1.07x 
E: gnssSvStatusCb: a: input svInfo.flags is 8
E: gnssSvStatusCb: b: input svInfo.flags is 8
I: frame= 55 fps= 27 q=23.7 size= 0kB time=00:00:02.27 bitrate= 0.2kbits/s speed= 1.1x 
I: frame= 71 fps= 28 q=31.0 size= 256kB time=00:00:02.92 bitrate= 716.9kbits/s speed=1.13x 
I: frame= 72 fps= 27 q=31.0 Lsize= 307kB time=00:00:03.01 bitrate= 832.4kbits/s speed=1.14x 
I: video:303kB audio:1kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 
I: 1.018265%
I: [aac @ 0xbdf43c00] Qavg: 65536.000
I: Image to video: 0 : 674960272
I: [-loop, 1, -i, Count_1628829749.jpg, -f, lavfi, -i, anullsrc, -s, 1280x592, -vf, scale='if(gt(a,1280/592),1280,-1)':'if(gt(a1280/592),-1,592)',format=yuv420p,fps=24,fade=type=in:duration=1,fade=type=out:duration=1:start_time=1, -t, 2, -preset, ultrafast, CountImageVideo_1628829749.mp4]
I: [-loop, 1, -i, Count_1628829749.jpg, -f, lavfi, -i, anullsrc, -s, 1280x592, -vf, scale='if(gt(a,1280/592),1280,-1)':'if(gt(a1280/592),-1,592)',format=yuv420p,fps=24,fade=type=in:duration=1,fade=type=out:duration=1:start_time=1, -t, 2, -preset, ultrafast, CountImageVideo_1628829749.mp4]
I: Image to Video: [-loop, 1, -i, Count_1628829749.jpg, -f, lavfi, -i, anullsrc, -s, 1280x592, -vf, scale='if(gt(a,1280/592),1280,-1)':'if(gt(a1280/592),-1,592)',format=yuv420p,fps=24,fade=type=in:duration=1,fade=type=out:duration=1:start_time=1, -t, 2, -preset, ultrafast, CountImageVideo_1628829749.mp4]
I: ffmpeg version v4.4-dev-416
I: Copyright (c) 2000-2020 the FFmpeg developers
I: built with Android (6454773 based on r365631c2) clang version 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 98c855489587874b2a325e7a516b99d838599c6f) (based on LLVM 9.0.8svn)
I: configuration: --cross-prefix=i686-linux-android- --sysroot=/files/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/mobile-ffmpeg/prebuilt/android-x86/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=i686 --cpu=i686 --cc=i686-linux-android16-clang --cxx=i686-linux-android16-clang++ --extra-libs='-L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-x86/cpu-features/lib -lndk_compat' --target-os=android --disable-neon --disable-asm --disable-inline-asm --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --enable-shared --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-openssl --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gmp --enable-gnutls --enable-libmp3lame --enable-libass --enable-iconv --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libopencore-amrnb --enable-libshine --enable-libspeex --enable-libwavpack --enable-libkvazaar --enable-libilbc --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libaom --enable-libtwolame --disable-sdl2 --enable-libvo-amrwbenc --enable-zlib --enable-mediacodec
I: libavutil 56. 55.100 / 56. 55.100
I: libavcodec 58. 96.100 / 58. 96.100
I: libavformat 58. 48.100 / 58. 48.100
I: libavdevice 58. 11.101 / 58. 11.101
I: libavfilter 7. 87.100 / 7. 87.100
I: libswscale 5. 8.100 / 5. 8.100
I: libswresample 3. 8.100 / 3. 8.100
I: Input #0, png_pipe, from 'Count_1628829749.jpg':
I: Duration: 
I: N/A
I: , bitrate: 
I: N/A
I: Stream #0:0
I: : Video: png, rgba(pc), 1794x1080
I: , 
I: 25 fps, 
I: 25 tbr, 
I: 25 tbn, 
I: 25 tbc
I: Input #1, lavfi, from 'anullsrc':
I: Duration: 
I: N/A
I: , start: 
I: 0.000000
I: , bitrate: 
I: 705 kb/s
I: Stream #1:0
I: : Audio: pcm_u8, 44100 Hz, stereo, u8, 705 kb/s
W: Codec AVOption preset (Configuration preset) specified for output file #0 (CountImageVideo_1628829749.mp4) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
I: Stream mapping:
I: Stream #0:0 -> #0:0
I: (png (native) -> mpeg4 (native))
I: Stream #1:0 -> #0:1
I: (pcm_u8 (native) -> aac (native))
I: Press [q] to stop, [?] for help
W: [graph 0 input from stream 0:0 @ 0xbe554440] sws_param option is deprecated and ignored
I: Output #0, mp4, to 'CountImageVideo_1628829749.mp4':
I: Metadata:
I: encoder : 
I: Lavf58.48.100
I: Stream #0:0
I: : Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 1280x592, q=2-31, 200 kb/s
I: , 
I: 24 fps, 
I: 12288 tbn, 
I: 24 tbc
I: Metadata:
I: encoder : 
I: Lavc58.96.100 mpeg4
I: Side data:
I: 
I: cpb: 
I: bitrate max/min/avg: 0/0/200000 buffer size: 0 
I: vbv_delay: N/A
I: Stream #0:1
I: : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
I: Metadata:
I: encoder : 
I: Lavc58.96.100 aac
W: Not supplying enough data to HAL, expected position 1243219441 , only wrote 1243083210
E: gnssSvStatusCb: a: input svInfo.flags is 8
E: gnssSvStatusCb: b: input svInfo.flags is 8
I: frame= 3 fps=0.0 q=2.0 size= 0kB time=00:00:00.09 bitrate= 3.8kbits/s speed=0.289x 
I: frame= 11 fps=0.0 q=2.0 size= 0kB time=00:00:00.44 bitrate= 0.8kbits/s speed=0.521x 
E: gnssSvStatusCb: a: input svInfo.flags is 8
E: gnssSvStatusCb: b: input svInfo.flags is 8
I: frame= 18 fps= 13 q=2.0 size= 0kB time=00:00:00.71 bitrate= 0.5kbits/s speed=0.532x 
I: frame= 26 fps= 14 q=2.0 size= 0kB time=00:00:01.06 bitrate= 0.3kbits/s speed=0.571x 
E: gnssSvStatusCb: a: input svInfo.flags is 8
E: gnssSvStatusCb: b: input svInfo.flags is 8
I: frame= 35 fps= 14 q=2.0 size= 0kB time=00:00:01.43 bitrate= 0.2kbits/s speed=0.595x 
I: frame= 43 fps= 14 q=2.0 size= 0kB time=00:00:01.76 bitrate= 0.2kbits/s speed=0.593x 
D: onUnbind: Intent { act=com.google.android.gms.wallet.service.BIND pkg=com.google.android.gms }
D: onUnbind: Intent { act=com.google.android.mdd.service.START cmp=com.google.android.gms/.chimera.GmsBoundBrokerService }
E: gnssSvStatusCb: a: input svInfo.flags is 8
E: gnssSvStatusCb: b: input svInfo.flags is 8
I: frame= 48 fps= 14 q=2.0 Lsize= 75kB time=00:00:02.02 bitrate= 303.7kbits/s speed=0.586x 
I: video:72kB audio:1kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 
I: 3.472700%
I: [aac @ 0xbdf69c00] Qavg: 65536.000
I: Count Image to video: 0 : 674963874
I: Start Video Query: [-i, iOS_footages_4_1627755471638.mp4, -ss, 00:00:02, -to, 00:00:05, -s, 1280x592, -r, 24, -preset, ultrafast, TilePartOne_1628829753.mp4]
I: ffmpeg version v4.4-dev-416
I: Copyright (c) 2000-2020 the FFmpeg developers
I: built with Android (6454773 based on r365631c2) clang version 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 98c855489587874b2a325e7a516b99d838599c6f) (based on LLVM 9.0.8svn)
I: configuration: --cross-prefix=i686-linux-android- --sysroot=/files/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/mobile-ffmpeg/prebuilt/android-x86/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=i686 --cpu=i686 --cc=i686-linux-android16-clang --cxx=i686-linux-android16-clang++ --extra-libs='-L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-x86/cpu-features/lib -lndk_compat' --target-os=android --disable-neon --disable-asm --disable-inline-asm --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --enable-shared --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-openssl --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gmp --enable-gnutls --enable-libmp3lame --enable-libass --enable-iconv --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libopencore-amrnb --enable-libshine --enable-libspeex --enable-libwavpack --enable-libkvazaar --enable-libilbc --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libaom --enable-libtwolame --disable-sdl2 --enable-libvo-amrwbenc --enable-zlib --enable-mediacodec
I: libavutil 56. 55.100 / 56. 55.100
I: libavcodec 58. 96.100 / 58. 96.100
I: libavformat 58. 48.100 / 58. 48.100
I: libavdevice 58. 11.101 / 58. 11.101
I: libavfilter 7. 87.100 / 7. 87.100
I: libswscale 5. 8.100 / 5. 8.100
I: libswresample 3. 8.100 / 3. 8.100
I: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'iOS_footages_4_1627755471638.mp4':
I: Metadata:
I: major_brand : 
I: qt 
I: minor_version : 
I: 0
I: compatible_brands: 
I: qt 
I: creation_time : 
I: 2021-07-31T18:17:18.000000Z
I: com.apple.quicktime.author: 
I: ReplayKitRecording
I: Duration: 
I: 00:03:34.00
I: , start: 
I: 0.000000
I: , bitrate: 
I: 2183 kb/s
I: Stream #0:0
I: (und)
I: : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 37 kb/s
I: (default)
I: Metadata:
I: creation_time : 
I: 2021-07-31T18:17:18.000000Z
I: handler_name : 
I: Core Media Audio
I: Stream #0:1
I: (und)
I: : Video: h264 (avc1 / 0x31637661), yuvj420p(pc, bt709), 592x1280, 2139 kb/s
I: , 
I: 38.89 fps, 
I: 59.94 tbr, 
I: 600 tbn, 
I: 1200 tbc
I: (default)
I: Metadata:
I: rotate : 
I: 270
I: creation_time : 
I: 2021-07-31T18:17:18.000000Z
I: handler_name : 
I: Core Media Video
I: encoder : 
I: H.264
I: Side data:
I: 
I: displaymatrix: rotation of 90.00 degrees
W: Codec AVOption preset (Configuration preset) specified for output file #0 (TilePartOne_1628829753.mp4) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
I: Stream mapping:
I: Stream #0:1 -> #0:0
I: (h264 (native) -> mpeg4 (native))
I: Stream #0:0 -> #0:1
I: (aac (native) -> aac (native))
I: Press [q] to stop, [?] for help
I: frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A 
W: [graph 0 input from stream 0:1 @ 0xedd7fca0] sws_param option is deprecated and ignored
W: [swscaler @ 0xb645a800] deprecated pixel format used, make sure you did set range correctly
I: frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A 
E: gnssSvStatusCb: a: input svInfo.flags is 8
E: gnssSvStatusCb: b: input svInfo.flags is 8
E: Couldn't load memtrack module
W: failed to get memory consumption info: -1
I: Output #0, mp4, to 'TilePartOne_1628829753.mp4':
I: Metadata:
I: major_brand : 
I: qt 
I: minor_version : 
I: 0
I: compatible_brands: 
I: qt 
I: com.apple.quicktime.author: 
I: ReplayKitRecording
I: encoder : 
I: Lavf58.48.100
I: Stream #0:0
I: (und)
I: : Video: mpeg4 (mp4v / 0x7634706D), yuv420p(progressive), 1280x592, q=2-31, 200 kb/s
I: , 
I: 24 fps, 
I: 12288 tbn, 
I: 24 tbc
I: (default)
I: Metadata:
I: encoder : 
I: Lavc58.96.100 mpeg4
I: creation_time : 
I: 2021-07-31T18:17:18.000000Z
I: handler_name : 
I: Core Media Video
I: Side data:
I: 
I: cpb: 
I: bitrate max/min/avg: 0/0/200000 buffer size: 0 
I: vbv_delay: N/A
I: 
I: displaymatrix: rotation of -0.00 degrees
I: Stream #0:1
I: (und)
I: : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
I: (default)
I: Metadata:
I: creation_time : 
I: 2021-07-31T18:17:18.000000Z
I: handler_name : 
I: Core Media Audio
I: encoder : 
I: Lavc58.96.100 aac
I: frame= 6 fps=6.0 q=5.8 size= 0kB time=00:00:00.20 bitrate= 1.7kbits/s speed=0.208x 
I: frame= 28 fps= 18 q=31.0 size= 0kB time=00:00:01.12 bitrate= 0.3kbits/s dup=0 drop=3 speed=0.736x 
E: gnssSvStatusCb: a: input svInfo.flags is 8
E: gnssSvStatusCb: b: input svInfo.flags is 8
I: frame= 44 fps= 22 q=31.0 size= 0kB time=00:00:01.79 bitrate= 0.2kbits/s dup=0 drop=15 speed=0.881x 
I: frame= 63 fps= 25 q=31.0 size= 0kB time=00:00:02.58 bitrate= 0.1kbits/s dup=0 drop=18 speed=1.01x 
E: gnssSvStatusCb: a: input svInfo.flags is 8
E: gnssSvStatusCb: b: input svInfo.flags is 8
I: frame= 72 fps= 24 q=31.0 size= 256kB time=00:00:02.95 bitrate= 709.0kbits/s dup=0 drop=19 speed=0.968x 
I: frame= 72 fps= 21 q=31.0 Lsize= 448kB time=00:00:03.01 bitrate=1215.1kbits/s dup=0 drop=19 speed=0.873x 
I: video:398kB audio:47kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 
I: 0.696200%
I: Start video: 0 : 674967468
I: [aac @ 0xb8c6e400] Qavg: 667.684
I: End Video Query: [-i, iOS_footages_4_1627755471638.mp4, -ss, 00:00:05, -to, 00:00:08, -s, 1280x592, -r, 24, -preset, ultrafast, TilePartTwo_1628829756.mp4]
I: ffmpeg version v4.4-dev-416
I: Copyright (c) 2000-2020 the FFmpeg developers
I: built with Android (6454773 based on r365631c2) clang version 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 98c855489587874b2a325e7a516b99d838599c6f) (based on LLVM 9.0.8svn)
I: configuration: --cross-prefix=i686-linux-android- --sysroot=/files/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/mobile-ffmpeg/prebuilt/android-x86/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=i686 --cpu=i686 --cc=i686-linux-android16-clang --cxx=i686-linux-android16-clang++ --extra-libs='-L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-x86/cpu-features/lib -lndk_compat' --target-os=android --disable-neon --disable-asm --disable-inline-asm --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --enable-shared --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-openssl --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gmp --enable-gnutls --enable-libmp3lame --enable-libass --enable-iconv --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libopencore-amrnb --enable-libshine --enable-libspeex --enable-libwavpack --enable-libkvazaar --enable-libilbc --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libaom --enable-libtwolame --disable-sdl2 --enable-libvo-amrwbenc --enable-zlib --enable-mediacodec
I: libavutil 56. 55.100 / 56. 55.100
I: libavcodec 58. 96.100 / 58. 96.100
I: libavformat 58. 48.100 / 58. 48.100
I: libavdevice 58. 11.101 / 58. 11.101
I: libavfilter 7. 87.100 / 7. 87.100
I: libswscale 5. 8.100 / 5. 8.100
I: libswresample 3. 8.100 / 3. 8.100
I: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'iOS_footages_4_1627755471638.mp4':
I: Metadata:
I: major_brand : 
I: qt 
I: minor_version : 
I: 0
I: compatible_brands: 
I: qt 
I: creation_time : 
I: 2021-07-31T18:17:18.000000Z
I: com.apple.quicktime.author: 
I: ReplayKitRecording
I: Duration: 
I: 00:03:34.00
I: , start: 
I: 0.000000
I: , bitrate: 
I: 2183 kb/s
I: Stream #0:0
I: (und)
I: : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 37 kb/s
I: (default)
I: Metadata:
I: creation_time : 
I: 2021-07-31T18:17:18.000000Z
I: handler_name : 
I: Core Media Audio
I: Stream #0:1
I: (und)
I: : Video: h264 (avc1 / 0x31637661), yuvj420p(pc, bt709), 592x1280, 2139 kb/s
I: , 
I: 38.89 fps, 
I: 59.94 tbr, 
I: 600 tbn, 
I: 1200 tbc
I: (default)
I: Metadata:
I: rotate : 
I: 270
I: creation_time : 
I: 2021-07-31T18:17:18.000000Z
I: handler_name : 
I: Core Media Video
I: encoder : 
I: H.264
I: Side data:
I: 
I: displaymatrix: rotation of 90.00 degrees
W: Codec AVOption preset (Configuration preset) specified for output file #0 (TilePartTwo_1628829756.mp4) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
I: Stream mapping:
I: Stream #0:1 -> #0:0
I: (h264 (native) -> mpeg4 (native))
I: Stream #0:0 -> #0:1
I: (aac (native) -> aac (native))
I: Press [q] to stop, [?] for help
W: [graph 0 input from stream 0:1 @ 0xe2c97860] sws_param option is deprecated and ignored
W: [swscaler @ 0xb5d28a80] deprecated pixel format used, make sure you did set range correctly
I: frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A 
E: gnssSvStatusCb: a: input svInfo.flags is 8
E: gnssSvStatusCb: b: input svInfo.flags is 8
I: frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A 
I: Output #0, mp4, to 'TilePartTwo_1628829756.mp4':
I: Metadata:
I: major_brand : 
I: qt 
I: minor_version : 
I: 0
I: compatible_brands: 
I: qt 
I: com.apple.quicktime.author: 
I: ReplayKitRecording
I: encoder : 
I: Lavf58.48.100
I: Stream #0:0
I: (und)
I: : Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 1280x592, q=2-31, 200 kb/s
I: , 
I: 24 fps, 
I: 12288 tbn, 
I: 24 tbc
I: (default)
I: Metadata:
I: encoder : 
I: Lavc58.96.100 mpeg4
I: creation_time : 
I: 2021-07-31T18:17:18.000000Z
I: handler_name : 
I: Core Media Video
I: Side data:
I: 
I: cpb: 
I: bitrate max/min/avg: 0/0/200000 buffer size: 0 
I: vbv_delay: N/A
I: 
I: displaymatrix: rotation of -0.00 degrees
I: Stream #0:1
I: (und)
I: : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
I: (default)
I: Metadata:
I: creation_time : 
I: 2021-07-31T18:17:18.000000Z
I: handler_name : 
I: Core Media Audio
I: encoder : 
I: Lavc58.96.100 aac
I: frame= 0 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x 
E: gnssSvStatusCb: a: input svInfo.flags is 8
E: gnssSvStatusCb: b: input svInfo.flags is 8
I: frame= 0 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x 
I: frame= 10 fps=4.9 q=18.5 size= 0kB time=00:00:00.37 bitrate= 0.9kbits/s speed=0.183x 
E: gnssSvStatusCb: a: input svInfo.flags is 8
E: gnssSvStatusCb: b: input svInfo.flags is 8
I: frame= 31 fps= 12 q=31.0 size= 0kB time=00:00:01.25 bitrate= 0.3kbits/s dup=0 drop=2 speed=0.491x 
I: frame= 52 fps= 17 q=31.0 size= 0kB time=00:00:02.12 bitrate= 0.2kbits/s dup=0 drop=5 speed=0.692x 
E: gnssSvStatusCb: a: input svInfo.flags is 8
E: gnssSvStatusCb: b: input svInfo.flags is 8
I: frame= 72 fps= 20 q=31.0 size= 0kB time=00:00:02.95 bitrate= 0.1kbits/s dup=0 drop=7 speed=0.827x 
I: frame= 72 fps= 18 q=31.0 size= 256kB time=00:00:02.95 bitrate= 709.0kbits/s dup=0 drop=7 speed=0.725x 
E: gnssSvStatusCb: a: input svInfo.flags is 8
E: gnssSvStatusCb: b: input svInfo.flags is 8
I: frame= 72 fps= 16 q=31.0 Lsize= 543kB time=00:00:03.01 bitrate=1472.6kbits/s dup=0 drop=7 speed=0.689x 
I: video:493kB audio:47kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 
I: 0.573798%
I: [aac @ 0xc2f20000] Qavg: 669.561
I: Movie paths: [CountImageVideo_1628829749.mp4, TilePartTwo_1628829756.mp4, FootageVideo_1628829747.mp4]
 
 --------- beginning of crash
E: FATAL EXCEPTION: Thread-8
 Process: com.wev.app, PID: 21310
 java.io.IOException: Cannot merge VisualSampleEntry[com.googlecode.mp4parser.boxes.mp4.ESDescriptorBox@ed48a2a8] and VisualSampleEntry[com.googlecode.mp4parser.boxes.mp4.ESDescriptorBox@dc387090]
 at com.googlecode.mp4parser.authoring.tracks.AppendTrack.mergeStsds(AppendTrack.java:116)
 at com.googlecode.mp4parser.authoring.tracks.AppendTrack.<init>(AppendTrack.java:59)
 at Mp4Cutter2.combineClips(Mp4Cutter2.kt:208)
 at com.wev.app.ui.activity.videoplayer.PlayVideoActivity.finalVideoGenerate(PlayVideoActivity.kt:3457)
 at com.wev.app.ui.activity.videoplayer.PlayVideoActivity.endVideoCreate(PlayVideoActivity.kt:3383)
 at com.wev.app.ui.activity.videoplayer.PlayVideoActivity.startVideoCreate(PlayVideoActivity.kt:3298)
 at com.wev.app.ui.activity.videoplayer.PlayVideoActivity.countImageToVideo(PlayVideoActivity.kt:3220)
 at com.wev.app.ui.activity.videoplayer.PlayVideoActivity.imageToVideo(PlayVideoActivity.kt:3158)
 at com.wev.app.ui.activity.videoplayer.PlayVideoActivity$createWev$1$getVideo$imageToVideo$1.run(PlayVideoActivity.kt:3056)
 
</init>


-
Launch Leech and the History of WMV
14 septembre 2010, par Multimedia Mike — GeneralI was combing through my programming archives again and came across an old Perl script called launch-leech.pl. This was a private script I used to maintain for the benefit of myself and a few friends. See, there was this site called Launch.com (URL doesn’t seem to do anything as of this writing but here’s the Wikipedia page). Purchased by Yahoo ! in 2001, Launch still maintained their independent branding. They also carried a lot of music videos, of which I am a huge junkie. launch-leech.pl was the tool I used to download the videos. This was particularly useful since I stubbornly clung to dialup internet access until mid-2004 and it would have been impossible to stream video at any decent quality (though there were 56k streams, so like I said– not possible at any decent quality).
Technically
I followed Launch.com for many years. To be honest, I only “followed” in that I figured out where their “latest videos” URL lived and regularly polled it. Each video had either a 6-, 7-, or 8-digit unique ID that could be plugged into the launch-leech.pl script which would then have a conversation with the relevant servers, determine the correct streaming URL with the highest quality, then download and save the URL by handing it off to an external program (first ASFRecorder, though I later switched to mmsclient).At one point, I even wrote a crawler that compiled an offline database of all the videos, their IDs and their metadata. I never thought of anything interesting to do with it, though.
Windows Media Legacy
During these glory days of leeching, Launch.com streamed using Windows Media. I admit, it’s a bit of a blur now — the site might have used Real or QuickTime, but I was obviously most in tune with the WM side. I remember when I first found the site circa 2000-2001, the videos were in MS MPEG-4v3, and the high quality bitrate was 300 kbits/sec. Eventually, Launch.com would stream WMV7, WMV8, and finally WMV9, with bitrates up to 700 kbits/sec. However, they never broke free of the 320×240 encoding resolution, which was frustrating. When I wasn’t able to notice any substantial difference between 300 and 700 kbits/sec, I felt it might be time to put those extra bits to work on a resolution upgrade.At least they were nice enough to re-encode a number of old videos using better codecs and bitrates with each revision, thus prompting me to scan through the site collecting updated video IDs for download.
Epilogue
I don’t clearly remember when I stopped visiting Launch.com. Video-wise, the web has been a blur of Flash video ever since about 2006. Meanwhile, I spent a lot of time collecting a bunch of music videos in the first half of the decade only to find that pretty much every version of every music video made since the dawn of time is available on demand thanks to YouTube. I have found that this phenomenon manifests in many areas as internet technology marches on.The Real Entertainment
The launch-leech.pl tool represents a recurring pattern for me. I derive as much — if not more — entertainment from creating programs like launch-leech.pl (and implicitly reverse engineering something in the process ; in this case, a website) as I do from the intended entertainment media itself. I seem to have this issue a lot with games, too.Is this an issue for anyone else ? Am I the only one who would rather play with the box that a shiny toy comes packaged in ?
-
Dreamcast Anniversary Programming
10 septembre 2010, par Multimedia Mike — Game HackingThis day last year saw a lot of nostalgia posts on the internet regarding the Sega Dreamcast, launched 10 years prior to that day (on 9/9/99). Regrettably, none of the retrospectives that I read really seemed to mention the homebrew potential, which is the aspect that interested me. On the occasion of the DC’s 11th anniversary, I wanted to remind myself how to build something for the unit and do so using modern equipment and build tools.
Background
Like many other programmers, I initially gained interest in programming because I desired to program video games. Not content to just plunk out games on a PC, I always had a deep, abiding ambition to program actual video game hardware. That is, I wanted to program a purpose-built video game console. The Sega Dreamcast might be the most ideal candidate to ever emerge for that task. All that was required to run your own software on the unit was the console, a PC, some free software tools, and a special connectivity measure.The Equipment
Here is the hardware required (ideally) to build software for the DC :- The console itself (I happen to have 3 of them laying around, as pictured above)
- Some peripherals : Such as the basic DC controller, the DC keyboard (flagship title : Typing of the Dead), and the visual memory unit (VMU)
- VGA box : The DC supported 480p gaming via a device that allowed you to connect the console straight to a VGA monitor via 15-pin D-sub. Not required for development, but very useful. I happen to have 3 of them from different third parties :
- Finally, the connectivity measure for hooking the DC to the PC.
There are 2 options here. The first is rare, expensive and relatively fast : A DC broadband adapter. The second is slower but much less expensive and relatively easy to come by– the DC coder’s cable. This was a DB-9 adapter on one end and a DC serial adapter on the other, and a circuit in the middle to monkey with voltage levels or some such ; I’m no electrical engineer. I procured this model from the notorious Lik Sang, well before that outfit was sued out of business.
Dealing With Legacy
Take a look at that coder’s cable again. DB-9 ? When was the last time you owned a computer with one of those ? And then think farther back to the last time to had occasion to plug something into one of those ports (likely a serial mouse).
A few years ago, someone was about to toss out this Belkin USB to DB-9 serial converter when I intervened. I foresaw the day when I would dust off the coder’s cable. So now I can connect a USB serial cable to my Eee PC, which then connects via converter to a different serial cable, one which has its own conversion circuit that alters the connection to yet another type of serial cable.
Bits is bits is bits as far as I’m concerned.
Putting It All Together
Now to assemble all the pieces (plus a monitor) into one development desktop :
The monitor says “dcload 1.0.3, idle…”. That’s a custom boot CD-ROM that is patiently waiting to receive commands, code and data via the serial port.
Getting The Software
Back in the day, homebrew software development on the DC revolved around these components :- GNU binutils : for building base toolchains for the Hitachi SH-4 main CPU as well as the ARM7-based audio coprocessor
- GNU gcc/g++ : for building compilers on top of binutils for the 2 CPUs
- Newlib : a C library intended for embedded systems
- KallistiOS : an open source, real-time OS developed for the DC
The DC was my first exposure to building cross compilers. I developed some software for the DC in the earlier part of the decade. Now, I am trying to figure out how I did it, especially since I think I came up with a few interesting ideas at the time.
Struggling With the Software Legacy
The source for KallistiOS has gone untouched since about 2004 but is still around thanks to Sourceforge. The instructions for properly building the toolchain have been lost to time, or would be were it not for the Internet Archive’s copy of a site called Hangar Eleven. Also, KallistiOS makes reference to a program called ‘dc-tool’ which is needed on the client side for communicating with dcload. I was able to find this binary at the Boob ! site (well-known in DC circles).I was able to build the toolchain using binutils 2.20.1, gcc 4.5.1 and newlib 1.18.0. Building the toolchain is an odd process as it requires building the binutils, then building the C compiler, then newlib, and then building the C compiler again along with the C++ compiler because the C++ compiler depends on newlib.
With some effort, I got the toolchain to build KallistiOS and most of its example programs. I documented most of the tweaks I had to make, several of them exactly the same as this one that I recently discovered while resurrecting a 10-year-old C program (common construct in C programming of old ?).
Moment of Truth
So I had some example programs built as ELF files. I told dc-tool to upload and run them on the waiting console. Unfortunately, the tool would just sort of stall, though some communication had evidently taken place. It has been many years since I have seen this in action but I recall that something more ought to be happening.Plan B (Hardware)
This is the point that I remember that I have been holding onto one rather old little machine that still has a DB-9 serial port. It’s not especially ergonomic to set up. I have to run it on my floor because, to connect it to my network, I need to run a 25′ ethernet cable that just barely reaches from the other room. The machine doesn’t seem to like USB keyboards, which is a shame since I have long since ditched any PS/2 keyboards. Fortunately, the box still has an old Gentoo distro and is running sshd, a holdover from its former life as a headless box.
Now when I run dc-tool, both the PC and DC report the upload progress while pretty overscan bars oscillate on the DC’s monitor. Now I’m back in business, until…
Plan C (Software)
None of these KallistiOS example programs are working. Some are even reporting catastrophic failures (register dumps) via the serial console. That’s when I remember that gcc can be a bit fickle on CPU architectures that are not, shall we say, first-class citizens. Back in the day, gcc 2.95 was a certified no-go for SH-4 development. 3.0.3 or 3.0.4 was called upon at the time. As I’m hosting this toolchain on x86_64 right now, gcc 3.0.4 can’t even be built (predates the architecture).One last option : As I searched through my old DC project directories, I found that I still have a lot of the resulting binaries, the ones I built 7-8 years ago. I upload a few of those and I finally see homebrew programming at work again, including this old program (described in detail here).
Next Steps
If I ever feel like revisiting this again, I suppose I can try some of the older 4.x series to see if they build valid programs. Alternatively, try building an x86_32-hosted 3.0.4 toolchain which ought to be a known good. And if that fails, search a little bit more to find that there are still active Dreamcast communities out there on the internet which probably have development toolchain binaries ready for download.