Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
using_subtitles [2016/06/16 06:45]
admin [Issue: Embedded subtitles are not displayed by my media device]
using_subtitles [2018/01/18 22:18] (current)
admin [Presentation Types]
Line 11: Line 11:
    
   * **Time based** – each subtitle text item is displayed based on the video’s timeline. Example: 1 minute 43 seconds 12 milliseconds   * **Time based** – each subtitle text item is displayed based on the video’s timeline. Example: 1 minute 43 seconds 12 milliseconds
-  * Frame based – each subtitle text item is displayed based on the number of the video frame. Example: frame=123 ​+  ​* **Frame based** – each subtitle text item is displayed based on the number of the video frame. Example: frame=123 ​
    
 **Note:** The video rate or frames per second (FPS) of a video may change if the original video is transcoded to another format. ​ This can often occur when converting a video from PAL (25.0 fps) to NTSC (23.97 fps).  In this case, frame based subtitles prepared for PAL will not match the new NTSC video and subtitles will no longer be synchronized with the video. **Note:** The video rate or frames per second (FPS) of a video may change if the original video is transcoded to another format. ​ This can often occur when converting a video from PAL (25.0 fps) to NTSC (23.97 fps).  In this case, frame based subtitles prepared for PAL will not match the new NTSC video and subtitles will no longer be synchronized with the video.
Line 419: Line 419:
  
 Encoding is not important for English language subtitles as the characters are always represented in the same way regardless of the Code Page. Encoding is not important for English language subtitles as the characters are always represented in the same way regardless of the Code Page.
 +
 +===== Extracting Embedded Subtitles =====
 +
 +Mezzmo allows you to extract embedded subtitles from the original video file and use them as external files. ​ This is useful particularly for devices where embedded subtitles are not supported but external subtitles are supported or burning is the only option for displaying subtitles.
 +
 +Extraction of the subtitles from video files can be executed manually, one by one - or you can let Mezzmo automatically extract embedded subtitles into the subtitle cache so all are ready to use to stream as external or used for burning.
 +
 +{{:​subs-extract-auto.png?​nolink|Options dialog (Subtitles -> Advanced tab)}}
 +
 +==== Advanced Extraction Features ====
 +
 +Mezzmo includes several third party software tools to extract embedded subtitles.
 + 
 +You can adjust the software tools used by Mezzmo to your needs.
 + 
 +**Important:​** Adjusting the tools requires advanced technical knowledge and is only recommended for users with expert knowledge of these tools and video subtitles.
 + 
 +To modify the tools used to extract embedded subtitles:
 + 
 +  - Go to the Options dialog (Subtitles -> Advanced tab).
 +  - Click the **Edit Application List** button.
 +  - The Mezzmo configuration file (called MezzmoMediaServer.INI) will be open in Notepad for editing.
 +  - Locate the sections marked by [SubsExtract-XX] tags.  Inspect and modify the rules as required.
 +  - Save the text file to  accept and reload tools used by Mezzmo to extract embedded subtitles.
 + 
 +Testing your changes:
 + 
 +  - Right-click on a video and click Properties to display the Properties dialog.
 +  - Go to the Subtitles tab.
 +  - Select an embedded subtitle track form the list.
 +  - Click the **Extract Subtitles** button and wait until it has completed.
 +  - Any new extracted subtitle files will be loaded automatically by the Subtitle Settings dialog for your your verification.
 +  - Adjust the language, code page and font if required.
 +  - Click OK to add new external subtitle to your Mezzmo library.
 +
 +Example Extraction Rules:
 + 
 +<​code>​
 +[SubsExtract-1]
 +Name=MKVToolNix
 +Path=c:​\Mezzmo\Third\MKVToolNix\mkvextract.exe
 +Argm=tracks "<​SrcFile>"​ <​TrackNr>:"<​OutDir><​OutName><​LangId>​.<​TrackNr><​OutExt>"​
 +Rule=matroska
 + 
 +[SubsExtract-2]
 +Name=OGMDemuxer
 +Path=c:​\Mezzmo\Third\OGMDemuxer\OGMDemuxer.exe
 +Argm=tracks "<​SrcFile>"​ <​TrackNr>:"<​OutDir><​OutName><​LangId>​.<​TrackNr><​OutExt>"​
 +Rule=.ogg.ogm.ogv
 + 
 +[SubsExtract-3]
 +Name=FFMpeg
 +Path=c:​\Mezzmo\FFMpeg.exe
 +Argm=-y -i "<​SrcFile>"​ -map 0:<​TrackNr>​ -an -vn -c:s:0 copy -f ass "<​OutDir><​OutName><​LangId>​.<​TrackNr>​.ass"​
 +Rule=ass[/​FONT]
 +</​code>​
 +
 +where:
 +  * [SubsExtract-idx] - section for the rule, where “idx” is an ordinary number in order
 +  * Name - name of the rule
 +  * Path - full path to the executable file (extraction tool)
 +  * Argm - arguments for the extraction tool
 +  * Rule - list of the identifiers of video or subtitles formats, where the rule should be applied
 +
 +Note:
 +  * Video Container IDs as reported by FFmpeg, separated by commas. Example: matroska,​mpeg,​mpegts,​avi,​mov,​mp4,​m4a,​3gp,​3g2,​mj2 ​   ​
 +  * Subtitle Format IDs as reported by FFmpeg/​Mezzmo,​ separated by commas. Example: subrip,​sami,​ass,​ssa,​microdvd,​subviewer,​mov_text,​dvd_subtitle
 +  * Video File Name Extension IDs separated by dots. Example: .ogg.ogm.ogv.avi.mpg.divx.mkv ​
 + 
 +Rules are processed in the order from first to the last until they match the video format identifier.
 +The tool’s command line is executed with the substituted arguments. Output files are saved into 
 +default folder for subtitles - typically in the Videos folder under the Windows Documents folder:
 +
 +<​code>​
 +C:​\Users\{USER}\Videos\Subtitles
 +</​code>​
 +  ​
 +Command line arguments are substituted by Mezzmo with the keywords as following:
 + 
 +  * <​SrcFile>​ - Full path to the video file for processing.
 +  * <​Index>​ - Natural Index of subtitles on Video Properties list.
 +  * <​TrackNr>​ - Absolute Track Index as reported by FFMpeg Info
 +  * <​TrackIdx>​ - Relative Index as FFMpeg order for subtitles class 
 +  * <​OutPath>​ - Destination folder (as recommended by Mezzmo).
 +  * <​OutName>​ - Output file name (as recommended by Mezzmo)
 +  * <​LangID>​ - Language identifier, eg: "​.pl"​
 +  * <​OutExt>​ - Output file extension (as recommended by Mezzmo) eg: "​.srt"​
 +  * <​Codec>​ - Detected subtitles codec (as reported by FFmpeg or Mezzmo)
 +
 +===== Extracting subtitles from a DVD rip =====
 +
 +These instruction are for extracting DVD subtitles from a DVD rip - which is typically organized by the following file structure:
 +
 +<​code>​
 +VTS_01_0.IFO - first title, information file
 +VTS_01_0.VOB - leading file
 +VTS_01_1.VOB - video part 1
 +VTS_01_2.VOB - video part 2
 +VTS_01_3.VOB - video part 3
 +
 +VTS_02_0.IFO - second title information file
 +VTS_02_0.VOB - leading file
 +VTS_02_1.VOB - video part 1
 +VTS_02_2.VOB - video part 2
 +VTS_02_3.VOB - video part 3
 +</​code>​
 +
 +Make sure you have identified the files as above. Use media player, like VLC to verify that first part is actually the movie and is having embedded DVD subtitles.
 +
 +  - Download install **VobSub Subtitle Ripper Wizard** (VSRip.exe 428KB). ​ It is free software by Gabest (Copyright 2003) - http://​sourceforge.net/​projects/​guliverkli/​files/​VSRip/​VSRip%201.0.0.6/​
 +  - Run VSRip.exe\\ {{:​vsrip_2.png?​nolink|VSRip software tool}}
 +  - Click **Load IFO** button to select input for processing. ​ It should be the IFO file from the title group. Note: in case “ERROR: Invalid ifo” message, verify the path to the file is having only ASCII characters - multilanguage naming is not accepted by VSRip tool.
 +  - Click **Save To** button to select output folder and specify the prefix name for the VobSub files. It should be a name like “VTS_01_1” to match first part video file. 
 +  - Click **Next** button and choose settings. You may extract all languages or just one.  Vob/Cell IDS should be all selected.
 +  - Click **Next** button to start processing. Successful extraction is reported by “Done!”. ​ Close the application.
 +  - Verify the output folder, expected files:
 +    * VTS_01_1.idx - first VobSub file
 +    * VTS_01_1.sub - second VobSub file
 +    * VTS_01_1.chunks - this file may be deleted. ​ Mezzmo is not using it
 +  - Add VobSub subtitles to Mezzmo: ​
 +    - Open Properties dialog for the video and select the Subtitles tab.
 +    - Click **Add Subtitles** button and select the newly created "​VTS_01_1.IDX"​ file.
 +    - Use Preview dialog to verify the subtitles.
 +    - Click OK to accept. All detected subtitles and languages will be added to the movie and used for burning as required.
 +
 +**Tip:** External VobSub subtitles are generally not supported by DLNA media devices. So there is no other choice but to burn them by full video transcoding.
 +
 +===== Using Mezzmo'​s diagnostic tools to troubleshoot subtitle issues =====
 +
 +Mezzmo lets you check onscreen how Mezzmo is going to deliver subtitles for your device - even before playing the video:
 + 
 +  - Go to the Options dialog (Logging page).
 +  - Select the **Add diagnostic text to titles for troubleshooting** checkbox.
 +  - Click OK to save your changes.
 +  - Restart your Mezzmo server and browse your videos on your device to see extended information about your videos when listed.
 + 
 +==== Determining whether your device supports certain video/audio formats and containers ====
 +
 +  - Go to the Media Devices dialog and edit your device.
 +  - On the Device Settings dialog, go to the Transcoding tab.
 +  - Turn off the **Transcode incompatible media files** checkbox.
 +  - Click OK to save your changes.
 +  - Stream your video to your device.
 + 
 +Adjust the delivery rules for subtitles as described in the **Device Profile and Device Settings** section and then connect to your Mezzmo server using your device and browse your Mezzmo library'​s videos.
 + 
 +{{:​subs-dbg-tv-screen.png?​nolink|Subtitle Diagnostics As Displayed On A Device}}
 +
 +Mezzmo will add a special suffix to the video title with the following keys:
 +
 +<​code>​
 +(VideoFormatID+ SubtitlesID= OutputID)
 +</​code>​
 + 
 +where:
 +  * **VideoFormatID** - identifier of the original video format. ​ Examples: mkv, vob, avi, mpeg
 +  * **SubtitlesID** - identifier of the subtitle delivery rules:
 +    * sn - subtitles are not available for the movie
 +    * sx - external subtitle file will be delivered
 +    * si - video is having some embedded subtitles
 +    * se - video with embedded subtitles will be delivered
 +    * sb - subtitles are burnt into the video
 +    * srt - format used for conversion of the external subtitles
 +    * (The numbers used by SubtitlesID are internal identifiers of the subtitle tracks)
 +  * **OutputID** - identifier of the video to be delivered:
 +    * orig - streaming original video file
 +    * trns - streaming transcoded or remuxed video file by one of the nominated containers like "​avi",​ "​mpegts",​ ... 
 +
 +**Examples:​**
 +  * “my video (avi+sx123srt=orig)” - streaming original AVI file with external subtitles converted to SubRip (srt)
 +  * “our video (mpg+sb345=trns)” - streaming transcoded video with subtitles burned in
 + 
 +==== Restoring your original settings ====
 +
 +  - Turn on the **Transcode incompatible media files** checkbox in the Device Settings dialog (Transcoding tab).
 +  - Turn off the **Add diagnostic text to titles for troubleshooting** checkbox in the Options dialog (Logging page).
 +  - Restart your Mezzmo server.
  
 ===== Troubleshooting Common Subtitle Issues ===== ===== Troubleshooting Common Subtitle Issues =====