视频生成缩略图如何实现?

xycra 2007-02-12 11:50:40
视频生成缩略图如何实现?
...全文
2227 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
my021010 2012-06-05
  • 打赏
  • 举报
回复
标记一下
my021010 2012-06-05
  • 打赏
  • 举报
回复
标记一下
ylqmf 2007-02-12
  • 打赏
  • 举报
回复
up
hegang888888888 2007-02-12
  • 打赏
  • 举报
回复
up
glamorsunny 2007-02-12
  • 打赏
  • 举报
回复
Imports System.Drawing
Imports System.IO



Public Class admin_upimg
Inherits Web.PageBase
Protected WithEvents Btnup As System.Web.UI.WebControls.Button
Protected WithEvents uplTheFile As System.Web.UI.HtmlControls.HtmlInputFile
Protected WithEvents fileinfo As System.Web.UI.WebControls.Label

Protected WithEvents chkslt As System.Web.UI.WebControls.CheckBox
Protected WithEvents Txtslt As System.Web.UI.WebControls.TextBox
Protected WithEvents Txt As System.Web.UI.WebControls.TextBox
Protected WithEvents Chkonly As System.Web.UI.WebControls.CheckBox
Protected WithEvents Chkshow As System.Web.UI.WebControls.CheckBox
Protected WithEvents Txtfileadd As System.Web.UI.WebControls.TextBox

#Region " Web 窗体设计器生成的代码 "

'该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码


End Sub

Private Sub Btnup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnup.Click

Txtfileadd.Text = ""
Txtslt.Text = ""


'-------------------------------------
'
'显示分类列表--list.aspx
'
'-------------------------------------
If uplTheFile.PostedFile.ContentLength = 0 Then
fileinfo.Visible = False
Txtfileadd.Text = "文件长度不能为0"
Exit Sub
Else
fileinfo.Visible = True
End If
Dim temnow As String = System.DateTime.Now.ToString("yyMMddhhffffff")


'保存图片

If Chkonly.Checked Then
Else
uplTheFile.PostedFile.SaveAs(Server.MapPath("../images/upload" + "/" + temnow + ".jpg"))
End If
'生成缩略图
If chkslt.Checked Then
Try
Dim Image As System.Drawing.Image

If Chkonly.Checked Then
Image = System.Drawing.Image.FromStream(uplTheFile.PostedFile.InputStream)
Else
Image = System.Drawing.Image.FromFile(Server.MapPath("../images/upload" + "/" + temnow + ".jpg"))
End If

Dim width = Image.Width
Dim height = Image.Height
Dim newwidth As Integer
Dim newheight As Integer

If width > height Then
newwidth = 120
newheight = Image.Height / Image.Width * newwidth
Else
newheight = 90
newwidth = Image.Width / Image.Height * newheight
End If

Dim callb As System.Drawing.Image.GetThumbnailImageAbort
Dim anewimage = Image.GetThumbnailImage(newwidth, newheight, callb, New System.IntPtr)

anewimage.Save(Server.MapPath("../images/upload" + "/" + temnow + "t" + ".jpg"))
Image.Dispose()
Txtslt.Text = "../images/upload" + "/" + temnow + "t" + ".jpg"

Response.Write("<script>opener.SetTitleImg(""" & Txtslt.Text & """);</script>")
Catch
Txtslt.Text = "创建说略图失败,可能是你的图片格式不正确"
End Try
End If

If Chkonly.Checked Then

Else
Txtfileadd.Text = "../images/upload" + "/" + temnow + ".jpg"
If Chkshow.Checked Then
Response.Write("<script>opener.SetBodyImg(""" & "<IMG sRc=" & Txtfileadd.Text & ">" & """);</script>")
End If
End If


' Dim FileSplit() As String = Split(uplTheFile.PostedFile.FileName, "\")
'Dim FileName As String = FileSplit(FileSplit.Length - 1)
' Dim Exts() As String = Split(FileName, ".")
' Dim Ext As String = LCase(Exts(Exts.Length - 1))

End Sub




Private Sub Chkshow_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Chkshow.CheckedChanged

End Sub
End Class
libao1983 2007-02-12
  • 打赏
  • 举报
回复
ffmpeg截图只是它的功能之一
最大的功能是转换视频文件为.flv
libao1983 2007-02-12
  • 打赏
  • 举报
回复
ffmpeg参数参考:
ffmpeg参数设定解说
-bitexact 使用标准比特率
-vcodec xvid 使用xvid压缩
-s 320x240 指定分辨率
-r 29.97 桢速率(可以改,确认非标准桢率会导致音画不同步,所以只能设定为15或者29.97)
画面部分,选其一
-b <比特率> 指定压缩比特率,似乎ffmpeg是自动VBR的,指定了就大概是平均比特率,比如768,1500这样的
就是原来默认项目中有的
-qscale <数值> 以<数值>质量为基础的VBR,取值0.01-255,约小质量越好
-qmin <数值> 设定最小质量,与-qmax(设定最大质量)共用,比如-qmin 10 -qmax 31
-sameq 使用和源同样的质量
声音部分
-acodec aac 设定声音编码
-ac <数值> 设定声道数,1就是单声道,2就是立体声,转换单声道的TVrip可以用1(节省一半容量),高品质
的DVDrip就可以用2
-ar <采样率> 设定声音采样率,PSP只认24000
-ab <比特率> 设定声音比特率,前面-ac设为立体声时要以一半比特率来设置,比如192kbps的就设成96,转换
君默认比特率都较小,要听到较高品质声音的话建议设到160kbps(80)以上
-vol <百分比> 设定音量,某些DVDrip的AC3轨音量极小,转换时可以用这个提高音量,比如200就是原来的2倍
这样,要得到一个高画质音质低容量的MP4的话,首先画面最好不要用固定比特率,而用VBR参数让程序自己去
判断,而音质参数可以在原来的基础上提升一点,听起来要舒服很多,也不会太大
libao1983 2007-02-12
  • 打赏
  • 举报
回复
呵呵,可以使用ffmpeg

ffmpeg -i "test.flv" -y -f image2 -ss 8 -t 0.001 -s 350x240 'test.jpg'

具体使用代码:
str=server.MapPath("ffmpeg.exe")
video=server.MapPath("test.flv")
photo=server.MapPath("test.jpg")
Set WshShell = server.CreateObject("Wscript.Shell")
str=str&" -i "&video&" -y -f image2 -ss 8 -t 0.001 -s 350x240 "&photo
Isffmpeg = WshShell.Run(str,1,false)
if Isffmpeg = 0 Then
Response.Write str&"<br>"
end if
Set WshShell = Nothing

其中ffmpeg.exe需要下载的
showlin 2007-02-12
  • 打赏
  • 举报
回复
asp理应不行,连图片生成缩略图都不行,要用组件
lovehongyun 2007-02-12
  • 打赏
  • 举报
回复
up.
心晴Sunheart 2007-02-12
  • 打赏
  • 举报
回复

个人感觉这个做起来比较困难
xycra 2007-02-12
  • 打赏
  • 举报
回复
怎么在asp中使用?
我是刚接触asp的.
麻烦说的详细些.
先多谢大家了

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧