¿Es posible obtener la imagen en miniatura de una URL de video? Necesito miniaturas de videos en una vista de lista.Obtener una imagen en miniatura del video desde la URL del video
Respuesta
Es muy importante identificar los componentes de un problema. De hecho, diría que tiene dos problemas separados:
Descargar un archivo de una URL.
Creación de una imagen en miniatura a partir de un archivo de video incompleto.
Mire esos dos por separado, encontrará mucha información.
Sí, es posible obtener la miniatura de un video usando ThumbnailUtils.
FileOutputStream out;
File land=new File(Environment.getExternalStorageDirectory().getAbsoluteFile()
+"/portland.jpg");// image file use to create image u can give any path.
Bitmap bitmap=ThumbnailUtils.createVideoThumbnail(filePath, MediaStore.Video.Thumbnails.FULL_SCREEN_KIND);//filePath is your video file path.
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] byteArray = stream.toByteArray();
out=new FileOutputStream(land.getPath());
out.write(byteArray);
out.close();
No puedo usar esta línea, muestra un error, Archivo land = new File (Environment.getExternalStorageDirectory(). GetAbsoluteFile() + "/ portland.jpg "); – Anitha
Obtengo la imagen de la URL del video, entonces ¿qué hago? Por favor, ayúdenme –
La mejor solución única, ya que a diferencia de MINI_KIND y MICRO_KIND, FULL_SCREEN_KIND solo se almacena en el db y es imposible acceder mediante la ruta del URI. – MPaulo
Trate ThumbnailUtils, para obtener mapas de bits de vídeo de la ruta del archivo
ThumbnailUtils.createVideoThumbnail(filePath,MediaStore.Video.Thumbnails.MINI_KIND);
no cuando está transmitiendo. –
Si se está preguntando específicamente sobre youtube
vídeos a continuación, hay 4 imágenes generadas automáticamente por Youtube.
http://img.youtube.com/vi/video_url_here/0.jpg
http://img.youtube.com/vi/video_url_here/1.jpg
http://img.youtube.com/vi/video_url_here/2.jpg
http://img.youtube.com/vi/video_url_here/3.jpg
imagen Tamaños estándares de
jugador Antecedentes miniatura (480x360 píxeles) http://i1.ytimg.com/vi/G0wGs3useV8/0.jpg
inicio de miniaturas (120x90 píxeles) http://i1.ytimg.com/vi/G0wGs3useV8/1.jpg
Medio en miniatura (120x90 píxeles) http://i1.ytimg.com/vi/G0wGs3useV8/2.jpg
Fin miniatura (120x90 píxeles) http://i1.ytimg.com/vi/G0wGs3useV8/3.jpg
de alta calidad de las miniaturas (480x360 píxeles) http://i1.ytimg.com/vi/G0wGs3useV8/hqdefault.jpg
Calidad Media en miniatura (320x180 píxeles) http://i1.ytimg.com/vi/G0wGs3useV8/mqdefault.jpg
normal calidad de las miniaturas (120x90 píxeles) http://i1.ytimg.com/vi/G0wGs3useV8/default.jpg
Miniatura de definición estándar (640x480 píxeles) http://i1.ytimg.com/vi/G0wGs3useV8/sddefault.jpg
máxima resolución de miniatura (1920x1080 píxeles) http://i1.ytimg.com/vi/G0wGs3useV8/maxresdefault.jpg
Es posible obtener una imagen en miniatura de un archivo de vídeo o URL usando FFMPEG.
FFMPEG debe construirse usando el NDK (o puede encontrar algunos binarios FFMPEG construidos por Android).Aquí es un proyecto de GitHub para construir FFMPEG:
https://github.com/guardianproject/android-ffmpeg
continuación, puede incluir los binarios FFMPEG con su aplicación y ejecutar FFMPEG de código en su aplicación para generar una imagen del vídeo (local o URL) utilizando una comando como:
ffmpeg -i videosite.com/video.flv -ss 00:00:15.000 -vframes 1 thumbnail_out.png
una cosa a tener en cuenta es lo que el tiempo de búsqueda (opción -SS) que agarra la miniatura para que sea una imagen significativa que representa el vídeo.
Para obtener miniatura de la URL, que sólo nos dieron una solución hasta ahora, Usted tiene que usar This library
Es compatible con archivo, HTTP, HTTPS, MMS, MMSH y RTMP protocolos
y
Soporta aac, acc +, avi, flac, mp2, mp3, mp4, ogg, 3gp ¡y más! formatos (audio y video):
Es posible obtener una imagen en miniatura del video desde la URL del video.
Si el tipo de vídeo es Vimeo siga los pasos siguientes:
1) Suponga que su URL de video: http://player.vimeo.com/video/17314292
2) Obtener ID del vídeo desde la URL: por ejemplo.
WS 3) de llamada con el ID de vídeo y formato XML http://vimeo.com/api/v2/video/17314292.xml
Usted recibirá "thumbnail_small", "thumbnail_medium", "thumbnail_large" en formato XML para el pulgar de vídeo de identificación de video
Si el tipo de vídeo de YouTube es sigue los pasos siguientes:
1) URL de video: http://www.youtube.com/embed/Nl2iMF0yKW8
2) Obtenga ID de video de la URL: ej. Nl2iMF0yKW8
3) Vuelva a colocar la identificación de video en esta url http://i3.ytimg.com/vi/Nl2iMF0yKW8/default.jpg
NOTA: Basta con sustituir su identificador de aquí.
Se está trabajando en mi caso
Uri videoUri = data.getData();
String selectedPathVideo="";
selectedPathVideo = ImageFilePath.getPath(getApplicationContext(), videoUri);
Log.i("Image File Path", ""+selectedPathVideo);
try {
Bitmap thumb = ThumbnailUtils.createVideoThumbnail(selectedPathVideo, MediaStore.Video.Thumbnails.MICRO_KIND);
imgFarmerVideo.setImageBitmap(thumb);
} catch (Exception e) {
e.printStackTrace();
}
El archivo de soporte
public class ImageFilePath {
/**
* Method for return file path of Gallery image
*
* @param context
* @param uri
* @return path of the selected image file from gallery
*/
public static String getPath(final Context context, final Uri uri)
{
//check here to KITKAT or new version
final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
// DocumentProvider
if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) {
// ExternalStorageProvider
if (isExternalStorageDocument(uri)) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = docId.split(":");
final String type = split[0];
if ("primary".equalsIgnoreCase(type)) {
return Environment.getExternalStorageDirectory() + "/" + split[1];
}
}
// DownloadsProvider
else if (isDownloadsDocument(uri)) {
final String id = DocumentsContract.getDocumentId(uri);
final Uri contentUri = ContentUris.withAppendedId(
Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));
return getDataColumn(context, contentUri, null, null);
}
// MediaProvider
else if (isMediaDocument(uri)) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = docId.split(":");
final String type = split[0];
Uri contentUri = null;
if ("image".equals(type)) {
contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
} else if ("video".equals(type)) {
contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
} else if ("audio".equals(type)) {
contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
}
final String selection = "_id=?";
final String[] selectionArgs = new String[] {
split[1]
};
return getDataColumn(context, contentUri, selection, selectionArgs);
}
}
// MediaStore (and general)
else if ("content".equalsIgnoreCase(uri.getScheme())) {
// Return the remote address
if (isGooglePhotosUri(uri))
return uri.getLastPathSegment();
return getDataColumn(context, uri, null, null);
}
// File
else if ("file".equalsIgnoreCase(uri.getScheme())) {
return uri.getPath();
}
return null;
}
/**
* Get the value of the data column for this Uri. This is useful for
* MediaStore Uris, and other file-based ContentProviders.
*
* @param context The context.
* @param uri The Uri to query.
* @param selection (Optional) Filter used in the query.
* @param selectionArgs (Optional) Selection arguments used in the query.
* @return The value of the _data column, which is typically a file path.
*/
public static String getDataColumn(Context context, Uri uri, String selection,
String[] selectionArgs) {
Cursor cursor = null;
final String column = "_data";
final String[] projection = {
column
};
try {
cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs,
null);
if (cursor != null && cursor.moveToFirst()) {
final int index = cursor.getColumnIndexOrThrow(column);
return cursor.getString(index);
}
} finally {
if (cursor != null)
cursor.close();
}
return null;
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is ExternalStorageProvider.
*/
public static boolean isExternalStorageDocument(Uri uri) {
return "com.android.externalstorage.documents".equals(uri.getAuthority());
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is DownloadsProvider.
*/
public static boolean isDownloadsDocument(Uri uri) {
return "com.android.providers.downloads.documents".equals(uri.getAuthority());
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is MediaProvider.
*/
public static boolean isMediaDocument(Uri uri) {
return "com.android.providers.media.documents".equals(uri.getAuthority());
}
/**
* @param uri The Uri to check.
* @return Whether the Uri authority is Google Photos.
*/
public static boolean isGooglePhotosUri(Uri uri) {
return "com.google.android.apps.photos.content".equals(uri.getAuthority());
}
}
- 1. Imagen en miniatura del video
- 2. Subir video y crear una miniatura del video en django
- 3. UIImagePickerController miniatura del video que se recupera de la biblioteca
- 4. ffmpeg-php para crear una miniatura del video
- 5. ¿Generar la imagen de vista previa del archivo de video?
- 6. iphone sdk> 3.0. ¿Miniatura de video?
- 7. Obtención de una instantánea de video para la miniatura
- 8. FFmpegPHP obtener una miniatura de la URL externa
- 9. Obtener la miniatura de Vimeo para video usando jQuery
- 10. cómo reproducir video desde la url
- 11. cómo obtener la duración total del video en la vista de video en android
- 12. Obteniendo la longitud del video
- 13. ¿Cómo se subió la duración del video?
- 14. ¿Cómo obtengo la identificación del video de la URL? (DailyMotion)
- 15. Obtener video de ALAsset
- 16. ¿Cómo agregar la imagen del cargador a video HTML5?
- 17. mediaelement.js - reproducir otro video al final del primer video
- 18. ¿Cómo obtengo una Miniatura de video en .Net?
- 19. Android: Creación de miniaturas de video desde URI de video
- 20. Obtener imagen de un fotograma de video en iPhone
- 21. Cómo reproducir streaming de audio/video desde una url?
- 22. ¿Cómo capturo video desde una cámara web?
- 23. Android Strip Audio del video
- 24. ¿Cómo obtener el marco de video del AVPlayer?
- 25. video como fondo del sitio? HTML 5
- 26. Android obtiene una ruta a la imagen desde la miniatura?
- 27. ¿Cómo obtener una miniatura para el video en mi carpeta/sdcard/Android/data/mypackage/files?
- 28. Crear video desde ImageSource
- 29. hora actual/duración del video html5?
- 30. Generar programáticamente CAP de imágenes en miniatura para video pequeño
ver mi respuesta ... – Lokesh
@ user3726986 es que la Url ContentProvider o la URL como youtube? – SMR