B4A Library FFmpeg_b4a - a FFmpeg library for b4a (decoding/streaming)

moster67

Expert
Licensed User
Longtime User
Continuing from the vlcb4a-thread

In the FFMpeg thread you write: "You can then add the missing containers, demuxers, muxers and codec by building and recompiling the FFmpeg-libraries yourself". I have no idea how to do that. Some more guidance would be appreciated.

Moved my answer to this thread.
Check the github project cited in the first post of this thread. Instructions can be found there and with some googling, testing, ripping of your hair, you will eventually get there I also had no idea when I started out but with patience I sorted things out.
 

Opengatebr

Member
Licensed User
Hello moster want to first thank all your work on that. I believe I have tested all alternatives Vitamio / VLCplayer and FFMpeg .

As you mentioned this be the safest for production will be you could help me solve this problem reported in the log without filter :

Could not find codec parameters for stream 1 (Audio : adpcm_g726 , 8000 Hz, 1 channels, 16 kb / s) : unspecified sample format .

I thank you strength and I'm sorry for bad English
 

moster67

Expert
Licensed User
Longtime User
Does the stream work with vitamio or VLC?
 

Opengatebr

Member
Licensed User
I flow with VLC vitamio I got with another IP camera not met me for remote access then changed by this current that does not flow in Vitamio too.
 

moster67

Expert
Licensed User
Longtime User
Not sure I understand your answer...
Can you please try answer again, maybe like this
Vitamio yes or no?
VLC yes or no?
 

moster67

Expert
Licensed User
Longtime User
Ok, I will check tomorrow. Now it's bedtime
 

Opengatebr

Member
Licensed User
Thank you for your attention, you will help me a lot if we do this work.
I'll be looking forward to the test.
Good night friend .
 

moster67

Expert
Licensed User
Longtime User
New version posted with updated so-files:
- FFmpeg_B4A_v3 - added support for some speech codecs suitable for IP-cams (https://dl.dropboxusercontent.com/u/47808624/FFMpeg_B4A_v3.zip)

Note: There is no API for setting buffer-size so streams from IP-cams take a little bit longer to load and start streaming. This is because IP cams mostly need small bit-rates and thus the data required for data-transfer is smaller and it takes longer to fill up the buffer.
 

ronovar

Active Member
Licensed User
Longtime User
I try this library and must say it is fantastic masterpiece...works fast, stable and have more powerful functions that's android native os player.

But i have one problem witch i think is bug:

I declare ffmpeg videoview and then to switch from full screen to small screen(preview) i use function SetLayout....when stream is start palying specificed width and height is automatically as stream width and height....

I need to when start playing video that stream video is fit into defined width and height.

B4X:
    FFMpegVideoView1.SetLayout(pnlVideo.Top - 2, pnlVideo.Width - 2, pnlVideo.Width - 4, pnlVideo.Height - 4)

On vlcb4a i use this code SetLayout and stream video is automatically scaled to defined Vlc width and height.

So if you can please fix this, so that stream video is scalled of defined width and height in SetLayout.

I try vlcb4 and setlayout and scaling works, but it is unstable and freezes offen. FFMpeg is much more smaller in size and faster.
 

Ezio Lepre

New Member
Licensed User
Longtime User
This lib also play audio files?
If so, how?
I tried with:

FFMpegVideoView1.SetVideoPath (File.Combine (File.DirAssets, "myfileaudio.mp3"))

but did not play.
 

MarcoRome

Expert
Licensed User
Longtime User
Hi Great Mike.
I have this code:

B4X:
Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    'Activity.LoadLayout("Layout1")
   
    FFMpegVideoView1.Initialize("FFMpegVideoView1")
    Activity.AddView(FFMpegVideoView1, 0, 0, 100%x, 100%y)
       
    FFMpegMediaController1.Initialize("FFMpegMediaController1")       
    FFMpegVideoView1.SetMediaController(FFMpegMediaController1)
    FFMpegVideoView1.SetVideoLayout(FFMpegVideoView1.VIDEO_LAYOUT_ZOOM)
               
    'FFMpegVideoView1.SetVideoPath("http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8")
    'FFMpegVideoView1.SetVideoPath(File.Combine(File.DirRootExternal, "test_video.mp4"))
    File.Copy(File.DirAssets, "waterfall.mp4", File.DirRootExternal, "waterfall.mp4")
    FFMpegVideoView1.SetVideoPath(File.Combine(File.DirRootExternal, "waterfall.mp4"))               
       

End Sub

If i try and SetVideoPath with http all work.
But if i set:
FFMpegVideoView1.SetVideoPath(File.Combine(File.DirRootExternal, "waterfall.mp4"))
i receive in log window:
FFMpegVideoView1_Prepared
and after few seconds the program in device close and crash.
Do you know why ?

Here project: https://www.dropbox.com/s/71oghf8qlnexjef/FFMpeg_Test.zip?dl=0

Thank you
Marco
 

moster67

Expert
Licensed User
Longtime User
I am unable to test now because I am at work. Will check this evening.
Anyway, there should be an error indication in the in the unfiltered logs?
 

MarcoRome

Expert
Licensed User
Longtime User
I am unable to test now because I am at work. Will check this evening.
Anyway, there should be an error indication in the in the unfiltered logs?

Hi Mike thaniks for your response. This is unfiltered logs:

After that i have FFMpegVideoView_Prepared...boom crash app
 

moster67

Expert
Licensed User
Longtime User
There are more info in the unfiltered logs (at least on my device). The error is probably related to the codec of the video-files you attached but apparently not a codec-issue but something in the c++ code (error I get is "unknown FFP_MSG_xxx(700)"). Looking at the Github-project, I see that this error pops up some time (see also https://www.b4x.com/android/forum/t...for-b4a-decoding-streaming.44476/#post-271589) but I am afraid that there is nothing I can do since it seems to originate to FFMpeg source code. That said, other local video-files I have tried work fine.

I hope one day to wrap the latest version of the IJKPlayer and perhaps these problems have been resolved by the original author.

Try with some other video-files encoded in a different codec.
 

MarcoRome

Expert
Licensed User
Longtime User
Thanks Mike.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…