How to encode files using ID3v2.3? - metadata

I am trying to get files ready for Http Live Streaming. I am then trying to embed ID3 metadata into the ts streams so a jwplayer plugin can read the timed metadata.
However, I am pretty sure the plugin only reads id3v2.3 and not id3v2.4 which id3taggenerator creates.
Does anyone know how I can either convert the tags to the older version, or create ones from that and then insert them into the files?
Thanks.

Related

Can I upload already-encoded content to azure media services, instead of uploading a video and then encoding it? How?

I want to encode locally and upload to avoid spending money in encoding.
Is this allowed? I did not find any documentation on it.
When I simply uploaded a file to the storage, the media services account said it could not play it without the ISM file. I had to encode (was it re-encode? it was an mp4) the file I had uploaded - I want to avoid that.
Yes, absolutely allowed and encouraged for customers. Especially ones that have custom encoding requirements that we may not support.
You can upload an .ism file that you create along with your encoded files. It's a simple SMIL 2.0 format XML file that points to the source files used.
It's a bit hard to find searching the docs, but there is a section outlining the workflow here - https://learn.microsoft.com/en-us/azure/media-services/latest/encode-dynamic-packaging-concept#on-demand-streaming-workflow
There is also a .NET Sample showing how to do it here:
https://github.com/Azure-Samples/media-services-v3-dotnet/tree/main/Streaming/StreamExistingMp4
You can see the code line at 111 that shows how to generate the .ism file -
// Generate the Server manifest for streaming .ism file.
// This file is a simple SMIL 2.0 file format schema that includes references to the uploaded MP4 files in the XML.
var manifestsList = await AssetUtils.CreateServerManifestsAsync(client, config.ResourceGroup, config.AccountName, inputAsset, locator);

use ID3 tag to collect information

I'm playing around with a .mp3 file and I'd like to imbed some code that prompts the listener for information (i was thinking a javascript popup) when the file is played. I've been reading up on ID3 tags and there seems to be some neat functionality built into the 'Audio Encryption' or possibly into the 'Generate Encapsulate Object' frames, but I cannot seem to find any good examples. I am assuming that if the tags can contain links I should be able to collect some data when the file is played.
No, ID3 in general does not support this. Only ID3v2, i.e. in versions 2.3.0 and 2.4.0 you could use
a WXXX frame, see https://id3.org/id3v2.3.0#User_defined_URL_link_frame while
a GEOB frame you might mean is more like an attachment for files, see https://id3.org/id3v2.3.0#General_encapsulated_object
How you're able to extract frames (let alone ID3v2 in general) out of an MP3 file with JavaScript is another problem.

Crawl Image using Apache Nutch

I installed Apache Nutch 2.3.1 and Solr 6.5.1 and MongoDB 3.4.7.
After I crawl urls that contain many images, in Solr and mongoDB isn't any image and video.
I also changed regex-urlfilter.txt file in apache nutch and delete postfix that were related to image(.png,.jpeg,.gift,...).
After that I changed suffix-urlfilter.txt file and comment jpeg,gif,png too.
After do that works the Apache Nutch doesn't crawl image.
Now I want to know how I can crawl image and see that in Solr?
As I read about it, I understand that I should create plug-ins.Is my impression correct?
Nutch supports several formats: Plain Text, HTML/XHTML+XML, XML, MS Office files, Adobe PDF, RSS, RTF, MP3. Unfortunately, there is not support for any sort of image files. Apart from this, I'm curious, what do you want to index in image file?
If I understand your question what you want to accomplish is extracting all the metadata from the images and indexing only this in Solr, right?
If Nutch is not even fetching your images then is more likely that some of the URL filters is excluding the URL from being fetched (check the logs). You need to describe your changes to the different files otherwise it will be impossible to help you.
Now, back to the original question, if you want to only index image URLs (along with the metadata) then you need to filter what you index into Solr. Unfortunately Nutch 2.3 doesn't offer (out of the box) this feature. In Nutch 1.x you could use mimetype-filter which allows you to specify what you want to index into Solr/ES depending on the mime type of the URL. My suggestion is to use Nutch 1.x unless you have a very good reason to use Nutch 2.x. Otherwise you could port the mimetype-filter plugin to 2.x or write your own IndexingFiler that supports your own logic.
Keep in mind that the information that you'll get in Solr is only limited to what tika can extract from the image file (metadata) which is usually not very well curated.

How to make Red 5 media server stream different formats of files?

I need to stream both audio and video files from the Red 5 server. By default Red 5 only supports flash, but I need to add support for other file types too.
I need to dynamically (on the run time) transcode the media file in one format to desired formats as per client request. Is it possible ? How to go for it ? I have been reading of vlcj project, but dont know how to integrate them.
If audio / video transcoding is not possible in Red 5, is there any other open source alternative I can look forward to ?
Any help will be really appreciated...
Thanks !
Check out the StreamableFileFactory bean inside your red5-common.xml, to see what kind of files can be streamed by default (flv, mp3, mp4, m4a). If you copy any of these files in your red5 service's streaming directory, it will be able to play it.
If the source you need to stream is in different format (like youtube uploads), then the best way for you to go is ffmpeg.
You build it to your server, then
from inside your red5
service check whether there are any
unsupported files in your streaming
directory (should be a scheduled job), and
if so, use ffmpeg with the proper
parameters to convert the new files
to streamable formats.
that's it.

mediafilesegmenter on CentOS?

I'm working on a project where I need to batch convert files to multiple media formats, some of which will be streamed to iPhone. I'm using ffmpeg on a CentOS server, and have been using mediafilesegmenter locally to create m3u8 playlists, and it's gone swimmingly, but, in trying to get the process going on the unix server, I can't seem to find a ported/alternative version of mediafilesegmenter to use on a centOS server.
So, here's the question:
Where can I find a ported or open source version of mediafilesegmenter?
in addition, I'll need the same solution for variantplaylistcreator, although if absolutely necessary I imagine I could create a script to generate these.
Any ideas? I believe there is a tool called "segmenter" out there, but it's not in any of my repos, and I can't seem to track down a repo that has it.
You can now segment from ffmpeg directly. see https://ffmpeg.org/ffmpeg-formats.html#segment_002c-stream_005fsegment_002c-ssegment
I'm working at a company with some thousands of (payment) videos.
We are using (for more than 2 years) a segmenter based on Jesse's and works great get it here
PD: Older versions of ffmpeg have relevant bugs
Found this source : http://svn.assembla.com/svn/legend/segmenter/, which is an open source segmenter, on this article: http://www.ioncannon.net/programming/452/iphone-http-streaming-with-ffmpeg-and-an-open-source-segmenter/, which has some good info about streaming.
Just in case anyone else has this issue.
Also for anyone in future - have tried both this and another OSS segmenter - and they were causing some artifacts in playback in JWPlayer flash (but not in native iDevices).
Also, according to this Zencoder post - apple segmenter is more efficient with the streams it produces: http://blog.zencoder.com/2011/12/08/announcing-the-clouds-most-efficient-http-live-streaming/
I used Bento4 mp42hls tool to encrypt a media with the FairPlay on Linux.