
Recherche avancée
Autres articles (62)
-
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page. -
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...) -
Librairies et binaires spécifiques au traitement vidéo et sonore
31 janvier 2010, parLes logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
Binaires complémentaires et facultatifs flvtool2 : (...)
Sur d’autres sites (6311)
-
mp4 video doesn't play on mobile, but it plays locally [closed]
20 août 2023, par SimonI built a mp4 video from jpg images using this command :


ffmpeg -framerate 1 -i img%d.jpg -c:v libx264 -pix_fmt yuv420p -r 1 output.mp4



I can open and play video on my computer (in VLC and in a browser), but I can't play it on mobile (Chrome on Android). There's an info about duration, I can press the "play" button, but the video doesn't play at all.


How to fix that ?


-
Adding ffmpeg OMX codec to Genymotion Android 4.4.2 emulator
22 avril 2016, par photonBasic Question :
Is there a way to add a new audio codec to the Genymotion Android emulator, short of downloading the entire Android source, learning how to build it, and creating my own version of Android ?
Context :
I have written a java Android app that acts as an audio renderer, as well as being a DLNA/OpenHome server and client. Think "BubbleUpnp" without video. My primary development platform is Win8.1. The program started as an ActiveState "pure-perl" DLNA MediaServer on Windows, which I then ported to Ubuntu, which I got working under Android a few years ago. It was pretty funky ... all UI being presented thru an HTTP server/jquery/jquery-ui, served from an Ubuntu shell running under Android (a trick in itself), serving up HTML pages to Chrome running on the same (Android) device. Besides being "funky" it had a major drawback that it required a valid IP address to work ... as I could not figure out how to get ubuntu to have a local loopback device for a 127.0.0.01 localhost I use the app as a "car stereo" on my boat (which is my home), which is often not hooked up to the internet.
I had a hard time getting started in Android app development because the speed of the Android emulators in Eclipse was horrid, and the ADB drivers did not work from Win8 for the longest time.
Then one day, about a year ago, I ran into Genymotion (kudos to the authors), and all of a sudden I had a workable Android development environment, so I added a Java implementation of the DLNA server, which then grew into a renderer also, using Android’s MediaPlayer class, and, adding the ability to act as a DLNA control point, and more recently also added OpenHome servers and renderers to it.
In a separate effort, I created a build environment for this program called fpCalc, based on ffMpeg, on a variety of platforms, including Win, Linux, and Android x86, arm, and arm7 devices (bitbucket.org/phorton1/) and did an extensive series of tests to determine the validity, and longevity of fpcalc fingerprints, discovering that the fpCalc fingerprint changed based on the version of ffmpeg it was built against, a separate topic to be sure, but in the process, learned at least a bit about how to build ffmpeg as well as Android shared libraries, JNI interfaces, etc.
So now the Android-Java version of the program has advanced past the old perl version, and I am debating whether I want to continue to try to build the perl version (and or add an wxPerl UI) to it.
One issue that has arisen, for me, is that the Genymotion emulator does not support WMA decoding ... as Android dropped support for WMA due to licensing issues, etc, a ways back in time ... yet my music library has significant numbers of tunes in WMA files, and I don’t want to "convert" them, my carefully thought-out philosophy is that my program does not modify the contents, or tags, or anything in the original media files that I have accumulated, or will receive in the future, rather treating them as "artifacts" worth preserving "as is". No conversion is going to make a file "better" than it was, and I wish to preserve ALL of the original sources for ALL of my music going forward.
So, I’m thinking, gee, I can build FFMPEG on 7 different platforms, and I see all these references to "OMX FFMPEG Codec Support for Android" on the net, so I’m thinking, "All I need to do is create the OMX Component and somehow get it into Genymotion".
I have studied up OMX, OpenMaxIL, seen Michael Chen’s posts, seen the stack overflow questions
How to make ffmpeg codec componet as OMX component
and
Android : How to integrate a decoder to multimedia framework
and Cedric Fung’s page https://vec.io/posts/use-android-hardware-decoder-with-omxcodec-in-ndk, and Michael Chen’s repository at https://github.com/omxcodec , as well as virtually every other page on the net that mentions any combination of libstagefright, OMX, Genymotion, and FFMPEG.
(this page would not let me put more than 2 links as i don’t have a "10" reputation, or I would have listed some of the sources I have seen) ..
My Linux development environment is a Ubuntu12.04 vbox running on my win machine. I have downloaded and run the Android-x86 iso as a vbox, and IT contains the ffmpeg codecs, but unfortunately, it neither supports a wifi interface, nor the vbox "guest additions", so it has a really funky mouse. I tried for about 3 days to address those two issues, but in the end do not feel it is usable for my puproses, and I really like the way genymotion "feels", particularly the moust support, so I’d like to keep genymotion as my "windows android" virtual device under which I may run my program, deprecate and stop using my old perl source,
except genymotion does not support WMA files ...
Several side notes :
(a) There is no good way to write a single sourced application in Java that runs natively in Windows, AND as an Android app.
(b) I don’t want to reboot my Windows machine to a "real" Android device just to play my music files. The machine has to stay in Windows as I use it for other things as well.
(c) I am writing this as my machine is in the 36th hour of downloading the entire ASOP source code base to a partition in my Ubuntu vbox while I am sitting in a hotel room on a not-so-good internet connection in Panama City, Panama, before I return to my boat in remote Bocas Del Toro Panama, where the internet connection is even worse.
(d) I did get WMA decoding to work in my app by calling my FFMPEG executable from Java (converting it to either WAV/PCM or AAC), but, because of limitations in Android’s MediaPlayer, it does not work well, particularly for remotely hosted WMA files ... MediaPlayer insists on having the whole file present before it starts to play, which can take several seconds or longer, and I am hoping that by getting a ’real’ WMA codec underneath MediaPlayer, that problem will just disappear ....
So, I’m trying to figure this whole mess out. There are a lot of tantalizing clues, and suggestions, but what I have found, or at least what I am starting to believe, is that if I want to add a simple WMA audio decoding codec to Android (Genymotion), not only do I have to download, basically, the ENTIRE ASOP Android source tree, and learn a new set of tools (repo, etc), but I have to (be able to) rebuild, from scratch, the entire Android system, esp. libstagefright.so in such a way as to be COMPLETELY compatible with the existing one in GenyMotion, while at the same time adding ffmpeg codecs ala Michael Chen’s page.
And I’m just asking, is it, could it really be that difficult ?
Anyways, this makes me crazy. Is there no way to just build a new component, or at worst a new OMX core, and add it to Genymotion, WITHOUT building all of Android, and preferably, based only on the OMX h files ? Or do I REALLY have to replace the existing libstagefright.so, which means, basically, rebuilding all of Android ...
p.s. I thought it would be nice to get this figured out, build it, and then post the installable new FFMPEG codecs someplace for other people to use, so that they don’t also grow warts on their ears and have steam shooting out of their eyeballs, while they get old trying to figure it out ....
-
FFmpeg command to capture Audio from Android mobile
24 novembre 2023, par UdayI'm trying to capture Audio from my Android mobile using FFmpeg.
Tried the below commands and the recorded clip has no Audio in it, it's just a dark black screen with no audio/video.


Basically, I want to stream the live microphone audio to the RTSP server


Given all Android permission for the microphone & camera.


Lib used : ffmpeg_kit_flutter


Here are the commands which I tried :


FFmpegKit.execute('-y -f android_camera -i 0:1 -r 30 -c:a aac -f rtsp -rtsp_transport tcp "$Url"');



Command :


FFmpegKit.execute('-y -f android_camera -i 0:1 -r 30 -c:a libmp3lame -qscale:a 2 "/storage/emulated/0/Download/androidvideo.mp3"');

FFmpegKit.execute('-y -f android_camera -i 0:0 -r 30 -c:a wavpack -b:a 64k "/storage/emulated/0/Download/androidvideo.wav"');



This command records video but no audio in it


FFmpegKit.execute('-video_size hd720 -f android_camera -camera_index 1 -i anything -r 10 -t 00:00:15 "$dir/androidvideo.mp4”');



Response


I/flutter (22881): Loading ffmpeg-kit-flutter.
D/ffmpeg-kit-flutter(22881): FFmpegKitFlutterPlugin com.arthenica.ffmpegkit.flutter.FFmpegKitFlutterPlugin@7f3db78 started listening to events on io.flutter.plugin.common.EventChannel$IncomingStreamRequestHandler$EventSinkImplementation@518a6b1.
I/flutter (22881): Loaded ffmpeg-kit-flutter-android-https-arm64-v8a-5.1.0.
D/VendorTagDescriptor(22881): addVendorDescriptor: vendor tag id 3854507339 added
W/MapperHal(22881): buffer descriptor with invalid usage bits 0x202000
D/ViewRootImpl@53a7452[FlutterFragmentActivity](22881): ViewPostIme pointer 1
W/ACameraCaptureSession(22881): Device is closed but session 0 is not notified
I/flutter (22881): logs:ffmpeg version n5.1.2
I/flutter (22881): logs: Copyright (c) 2000-2022 the FFmpeg developers
I/flutter (22881): logs:
I/flutter (22881): logs: built with Android (7155654, based on r399163b1) clang version 11.0.5 (https://android.googlesource.com/toolchain/llvm-project 87f1315dfbea7c137aa2e6d362dbb457e388158d)
I/flutter (22881): logs: configuration: --cross-prefix=aarch64-linux-android- --sysroot=/files/android-sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/ffmpeg-kit/prebuilt/android-arm64/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=aarch64 --cpu=armv8-a --target-os=android --enable-neon --enable-asm --enable-inline-asm --ar=aarch64-linux-android-ar --cc=aarch64-linux-android24-clang --cxx=aarch64-linux-android24-clang++ --ranlib=aarch64-linux-android-ranlib --strip=aarch64-linux-android-strip --nm=aarch64-linux-android-nm --extra-libs='-L/home/taner/Projects/ffmpeg-kit/prebuilt/android-arm64/cpu-features/lib -lndk_compat' --disable-autodetect --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --disable-static --enable-shared --enable-pthreads --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --
I/flutter (22881): logs: libavutil 57. 28.100 / 57. 28.100
I/flutter (22881): logs: libavcodec 59. 37.100 / 59. 37.100
I/flutter (22881): logs: libavformat 59. 27.100 / 59. 27.100
I/flutter (22881): logs: libavdevice 59. 7.100 / 59. 7.100
I/flutter (22881): logs: libavfilter 8. 44.100 / 8. 44.100
I/flutter (22881): logs: libswscale 6. 7.100 / 6. 7.100
I/flutter (22881): logs: libswresample 4. 7.100 / 4. 7.100
I/flutter (22881): logs:[android_camera @ 0x7450bb2f80] Requested video_size 0x0 not available, falling back to 4032x3024
I/flutter (22881): logs:Input #0, android_camera, from '0:0':
I/flutter (22881): logs: Duration: 
I/flutter (22881): logs:N/A
I/flutter (22881): logs:, start: 
I/flutter (22881): logs:299109.760553
I/flutter (22881): logs:, bitrate: 
I/flutter (22881): logs:N/A
I/flutter (22881): logs:
I/flutter (22881): logs: Stream #0:0
I/flutter (22881): logs:: Video: rawvideo (NV21 / 0x3132564E), nv21, 4032x3024
I/flutter (22881): logs:, 
I/flutter (22881): logs:30 fps, 
I/flutter (22881): logs:30 tbr, 
I/flutter (22881): logs:1000000000.00 tbn
I/flutter (22881): logs:
I/flutter (22881): logs: Side data:
I/flutter (22881): logs: 
I/flutter (22881): logs:displaymatrix: rotation of -90.00 degrees
I/flutter (22881): logs:
I/flutter (22881): logs:Stream mapping:
I/flutter (22881): logs: Stream #0:0 -> #0:0
I/flutter (22881): logs: (rawvideo (native) -> mpeg4 (native))
I/flutter (22881): logs:
I/flutter (22881): logs:Press [q] to stop, [?] for help
I/flutter (22881): logs:Output #0, mp4, to '/storage/emulated/0/Download/androidvideo.mp4':
I/flutter (22881): logs: Metadata:
I/flutter (22881): logs: encoder : 
I/flutter (22881): logs:Lavf59.27.100
I/flutter (22881): logs:
I/flutter (22881): logs: Stream #0:0
I/flutter (22881): logs:: Video: mpeg4 (mp4v / 0x7634706D), yuv420p(tv, progressive), 3024x4032, q=2-31, 200 kb/s
I/flutter (22881): logs:, 
I/flutter (22881): logs:30 fps, 
I/flutter (22881): logs:15360 tbn
I/flutter (22881): logs:
I/flutter (22881): logs: Metadata:
I/flutter (22881): logs: encoder : 
I/flutter (22881): logs:Lavc59.37.100 mpeg4
I/flutter (22881): logs:
I/flutter (22881): logs: Side data:
I/flutter (22881): logs: 
I/flutter (22881): logs:cpb: 
I/flutter (22881): logs:bitrate max/min/avg: 0/0/200000 buffer size: 0 
I/flutter (22881): logs:vbv_delay: N/A
I/flutter (22881): logs:
I/flutter (22881): logs: 
I/flutter (22881): logs:displaymatrix: rotation of -0.00 degrees
I/flutter (22881): logs:
I/flutter (22881): logs:frame= 1 fps=0.0 q=3.4 size= 0kB time=00:00:00.00 bitrate=5415.4kbits/s speed=32.5x 
I/flutter (22881): logs:frame= 2 fps=0.0 q=2.0 size= 0kB time=00:00:00.03 bitrate= 10.5kbits/s speed=0.0475x 
I/flutter (22881): logs:frame= 9 fps=6.8 q=10.9 size= 256kB time=00:00:00.26 bitrate=7863.7kbits/s dup=5 drop=0 speed=0.202x 
I/flutter (22881): logs:frame= 13 fps=6.6 q=22.7 size= 512kB time=00:00:00.40 bitrate=10484.9kbits/s dup=7 drop=0 speed=0.203x 
I/flutter (22881): logs:frame= 28 fps=8.4 q=31.0 size= 512kB time=00:00:00.90 bitrate=4660.4kbits/s dup=20 drop=0 speed=0.269x 
I/flutter (22881): logs:frame= 55 fps= 11 q=31.0 size= 1024kB time=00:00:01.80 bitrate=4660.4kbits/s dup=45 drop=0 speed=0.368x 
I/flutter (22881): logs:frame= 60 fps=9.8 q=31.0 size= 1280kB time=00:00:01.96 bitrate=5331.7kbits/s dup=49 drop=0 speed=0.321x 
I/flutter (22881): logs:frame= 73 fps=9.4 q=31.0 Lsize= 1500kB time=00:00:02.40 bitrate=5121.4kbits/s dup=61 drop=0 speed=0.309x 
I/flutter (22881): logs:video:1499kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.079011%
I/flutter (22881): logs:frame= 73 fps=9.4 q=31.0 Lsize=N/A time=00:00:02.40 bitrate=N/A dup=61 drop=0 speed=0.309x 
I/flutter (22881): logs:video:1499kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
I/flutter (22881): logs:[android_camera @ 0x7450bb2f80] Android camera capture session was closed.
I/flutter (22881): logs:Exiting normally, received signal 2.
I/flutter (22881): output:ffmpeg version n5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
I/flutter (22881): built with Android (7155654, based on r399163b1) clang version 11.0.5 (https://android.googlesource.com/toolchain/llvm-project 87f1315dfbea7c137aa2e6d362dbb457e388158d)
I/flutter (22881): configuration: --cross-prefix=aarch64-linux-android- --sysroot=/files/android-sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/ffmpeg-kit/prebuilt/android-arm64/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=aarch64 --cpu=armv8-a --target-os=android --enable-neon --enable-asm --enable-inline-asm --ar=aarch64-linux-android-ar --cc=aarch64-linux-android24-clang --cxx=aarch64-linux-android24-clang++ --ranlib=aarch64-linux-android-ranlib --strip=aarch64-linux-android-strip --nm=aarch64-linux-android-nm --extra-libs='-L/home/taner/Projects/ffmpeg-kit/prebuilt/android-arm64/cpu-features/lib -lndk_compat' --disable-autodetect --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-s
I/flutter (22881): failStackTrace:null
I/flutter (22881): result code:255