利用Ffmpeg获得flv视频缩略图和视频时间的代码_PHP教程
问题描述;获得flv视频的缩略图和视频时间长度
- 谷歌了半天发现可以使用Ffmpeg获得视频的一些信息,先介绍一下FFMEPG
这里简单说一下:FFmpeg是用于录制、转换和流化音频和视频的完整解决方案,一套领先的音/视频编解码类库。官方正式版ffmpeg不支持rmvb和rm格式. 不过有很多解决方法
FFmpeg的官方网址是 http://ffmpeg.mplayerhq.hu/ 。
中文Wiki是 http://www.ffmpeg.com.cn/ ,资料很多。
㈠安装FFMEPG
操作系统:centos6
找了那么多安装FFMEPG的文章,基本上都是没有注释,需要安装那么多软件包,也不说明一下是干什么用的,纠结。。而且安装上面步骤总是出问题,最后只得寻找官网,认真的看一下,确实官方的资料很好用,以后一定要优先看官网资料。
由于FFMEPG本身就支持flv格式,也就是说目前不需要安装什么插件只需要安装FFMEPG,安装FFMEPG有两种方式:①源码包安装,这个不知道怎么回事老是报错②yum命令安装,centos这个yum是最好的命令,呵呵
下面是安装步骤:
㈠安装编译环境
#yum install -y automake autoconf libtool gcc gcc-c++
㈡安装所需程序库的RPM包到 centos
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
安装 Install ffmpeg 等模块
yum -y install ffmpeg ffmpeg-devel
***********************************centos下面的安装已经完成!
安装php支持插件:FFMPEG-PHP
安装 FFMPEG-PHP
cd /usr/local/src
wget http://garr.dl.sourceforge.net/sourceforge/ffmpeg-php/ffmpeg-php-0.6.0.tbz2
tar jxvf ffmpeg-php-0.6.0.tbz2
cd ffmpeg-php-0.6.0
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-confi
make
make install
然后修改php.ini文件
vi php.ini
在php.ini文件加上这句
extension=ffmpeg.so
然后重新启动apache
/etc/init.d/httpd restart
*******备注wget链接那个可能失效,估计是被墙了,可以在网上自己找
----------------------------------------------------------------------------------------------------------
但是我打开phpinfo并没有看到FFMPEG,不知道怎么回事,官网上面提供的安装方法是需要重新编译php来支持ffmpeg,我嫌麻烦,考虑到服务都是在centos上运行,既然centos已经可以,
那我使用php的exec函数调用liunx的shell命令不就可以了,也就是说不需要安装FFMPEG-PHP
关于php的exec函数的可以参考:php中使用exec,system等函数调用系统命令
下面是获得缩略图的常用命令:
示例1:
截取一张352x240尺寸大小的,格式为jpg的图片:
ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg
示例2:
把视频的前30帧转换成一个Animated Gif :
ffmpeg -i test.asf -vframes 30 -y -f gif a.gif
示例3:这个是我需要的!
在视频的第8.01秒处截取 320*240 的缩略图
ffmpeg -i test.flv -y -f mjpeg -ss 3 -t 0.001 -s 320x240 test.jpg
示例4:
把视频转换成flv文件(这个用得最多,现在Flv基本上已经成了网络视频的标准了)
ffmpeg -i source -s 320×240 -b 700k -aspect 4:3 -y -f flv dest.flv 。
其中:
- source:是原始文件的名字,可以是mov,mpeg,avi,wmv各类格式,ffmpeg基本都支持。
- -s wxh: 指定视频的宽和高
- -b : 设定视频的比特率
- -aspect: 保持视频的比率。如4:3或者16:9
- -y : 如果目标文件存在时,直接覆盖原有的目标文件。
- -f : 指定转换的文件格式,这里是flv格式。(其实如果不指定文件格式,ffmpeg也会按文件的后缀名来进行转换)。
- dest: 转换的目标文件名字,并不一定需要是flv,可以是mov,mpeg以及其他的常用格式。
参数说明:
-L license
-h 帮助
-fromats 显示可用的格式,编解码的,协议的
-f fmt 强迫采用格式fmt
-I filename 输入文件
-y 覆盖输出文件
-t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持
-ss position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持
s wxh: 指定视频的宽和高
****************************************************************************
示例3:是针对flv格式的视频获得指定处的缩略图,记住 -f强制转换的格式是mjpeg因为我要获得.jpg的缩略图,网上有很多写成文章都是写成ffmpeg -i test.flv -y -f image2 -ss 08.010 -t 0.001 -s 352x240 b.jpg 这个是错误,不可能输出.
通过上面的截图:我们可以看到输入的flv信息和输出的jpg图片信息,Duration就是本文需要的视频长度,但是我不知道如何取得这个变量
下面是PHP调用shell命令获得缩略图的代码
exec("/usr/bin/ffmpeg -i /usr/local/apache/htdocs/test.flv -y -f mjpeg -ss 3 -t 0.001 -s 320x240 /usr/local/apache/htdocs/test.jpg",$out,$status);
print_r($status);//0是成功 1是失败
*************************************************
如果没有什么图片生成的可能原因:
①对于存储生成图片的文件夹需要有写入权限 #chomd 777 /usr/local/apache/htdocs
②在php.ini中有disable_functions禁用了php调用shell命令函数,
disable_functions = proc_open, popen,exec, system, shell_exec, passthru
解决办法:注释掉disable_functions这一项
#disable_functions = proc_open, popen,exec, system, shell_exec, passthru
或者disable_functions = (把禁言的函数除去)
保存关闭开启就可以了
③php.ini中的安全模式必须关闭 才可以调用exec函数
safe_mode = off
④图片时间截取也很重要,很有可能是无效图片或者是黑屏
建议 增加关键帧,通常第一帧为关键帧,可以使用:vframes:帧参数,舍弃微秒参数,只保留时间参数
/usr/bin/ffmpeg -i /usr/local/apache/htdocs/test.flv -y -f mjpeg -ss 3 -vframes 1 -s 320x240 /usr/local/apache/htdocs/test.jpg
****************************************************************************
上面都是解决获得缩略图的方法,我看到有人在安卓开发中利用ffmpeg获得手机里面视频的缩略图,考虑到安卓的底层是liunx,应该是通用的!下面是如何获得视频的长度,虽然Duration就是需要的视频长度,但是不知道如何去取,如果有人会,可以教一下我,跪求!
下面是使用纯PHP获得视频的时间长度:
你在网上搜一下:php获得flv视频长度
可以发现有很多结果,但是我翻了十几页发现tmd的都是复制转载的,而且全部都不能使用,不知道为什么?这个代码和诡异,大家可以把网上的代码运行一下,你会发现这个跟不是php,因为编辑器就没有显示语法高亮,没有办法我照着网上手写了一边代码,发现还是报错诡异了 。。。报错还很奇怪 ,感兴趣的可以试试,没有办法我决定搜英文资料,最后在外国网站看到了代码,拿来一试可以!哈哈哈 还是老外的东西好使啊
错误的代码:
关键词没有高亮显示
下面是正确的代码:
function BigEndian2Int($byte_word, $signed = false) {
$int_value = 0;
$byte_wordlen = strlen($byte_word);
for ($i = 0; $i $int_value += ord($byte_word{$i}) * pow(256, ($byte_wordlen - 1 - $i));
}
if ($signed) {
$sign_mask_bit = 0x80 if ($int_value & $sign_mask_bit) {
$int_value = 0 - ($int_value & ($sign_mask_bit - 1));
}
}
return $int_value;
}
//获得视频的数字时间
function getTime($name){
if(!file_exists($name)){
return;
}
$flv_data_length=filesize($name);
$fp = @fopen($name, 'rb');
$flv_header = fread($fp, 5);
fseek($fp, 5, SEEK_SET);
$frame_size_data_length =BigEndian2Int(fread($fp, 4));
$flv_header_frame_length = 9;
if ($frame_size_data_length > $flv_header_frame_length) {
fseek($fp, $frame_size_data_length - $flv_header_frame_length, SEEK_CUR);
}
$duration = 0;
while ((ftell($fp) + 1) $this_tag_header = fread($fp, 16);
$data_length = BigEndian2Int(substr($this_tag_header, 5, 3));
$timestamp = BigEndian2Int(substr($this_tag_header, 8, 3));
$next_offset = ftell($fp) - 1 + $data_length;
if ($timestamp > $duration) {
$duration = $timestamp;
}
fseek($fp, $next_offset, SEEK_SET);
}
fclose($fp);
return $duration;
}
//转化为0:03:56的时间格式
function fn($time){
$num = $time;
$sec = intval($num/1000);
$h = intval($sec/3600);
$m = intval(($sec%3600)/60);
$s = intval(($sec%60));
$tm = $h.':'.$m.':'.$s;
return $tm;
}
$t = getTime("22.flv");//显示数字时间如236722
echo fn($t);//显示时间格式0:03:56
?>
预览效果:
我的视频是55秒正好!ok

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Mit dem Aufkommen von Kurzvideoplattformen ist Douyin zu einem unverzichtbaren Bestandteil des täglichen Lebens eines jeden geworden. Auf TikTok können wir interessante Videos aus aller Welt sehen. Manche Leute posten gerne die Videos anderer Leute, was die Frage aufwirft: Verstößt Douyin gegen das Posten der Videos anderer Leute? In diesem Artikel wird dieses Problem erörtert und Ihnen erklärt, wie Sie Videos ohne Rechtsverletzung bearbeiten und Probleme mit Rechtsverletzungen vermeiden können. 1. Verstößt es gegen Douyins Veröffentlichung von Videos anderer Personen? Gemäß den Bestimmungen des Urheberrechtsgesetzes meines Landes stellt die unbefugte Nutzung der Werke des Urheberrechtsinhabers ohne die Erlaubnis des Urheberrechtsinhabers einen Verstoß dar. Daher stellt das Posten von Videos anderer Personen auf Douyin ohne die Erlaubnis des ursprünglichen Autors oder Urheberrechtsinhabers einen Verstoß dar. 2. Wie bearbeite ich ein Video ohne Urheberrechtsverletzung? 1. Verwendung von gemeinfreien oder lizenzierten Inhalten: Öffentlich

Douyin, die nationale Kurzvideoplattform, ermöglicht uns nicht nur, in unserer Freizeit eine Vielzahl interessanter und neuartiger Kurzvideos zu genießen, sondern gibt uns auch eine Bühne, um uns zu zeigen und unsere Werte zu verwirklichen. Wie kann man also Geld verdienen, indem man Videos auf Douyin veröffentlicht? Dieser Artikel wird diese Frage ausführlich beantworten und Ihnen dabei helfen, mit TikTok mehr Geld zu verdienen. 1. Wie kann man mit dem Posten von Videos auf Douyin Geld verdienen? Nachdem Sie ein Video gepostet und eine bestimmte Anzahl an Aufrufen auf Douyin erreicht haben, haben Sie die Möglichkeit, am Werbe-Sharing-Plan teilzunehmen. Diese Einkommensmethode ist eine der bekanntesten unter Douyin-Benutzern und stellt auch für viele YouTuber die Haupteinnahmequelle dar. Douyin entscheidet anhand verschiedener Faktoren wie Kontogewicht, Videoinhalt und Publikumsfeedback, ob Möglichkeiten zum Teilen von Werbung bereitgestellt werden sollen. Die TikTok-Plattform ermöglicht es Zuschauern, ihre Lieblingsschöpfer durch das Versenden von Geschenken zu unterstützen.

1. Öffnen Sie zunächst Weibo auf Ihrem Mobiltelefon und klicken Sie unten rechts auf [Ich] (wie im Bild gezeigt). 2. Klicken Sie dann oben rechts auf [Zahnrad], um die Einstellungen zu öffnen (wie im Bild gezeigt). 3. Suchen und öffnen Sie dann [Allgemeine Einstellungen] (wie im Bild gezeigt). 4. Geben Sie dann die Option [Video Follow] ein (wie im Bild gezeigt). 5. Öffnen Sie dann die Einstellung [Video-Upload-Auflösung] (wie im Bild gezeigt). 6. Wählen Sie abschließend [Originalbildqualität] aus, um eine Komprimierung zu vermeiden (wie im Bild gezeigt).

Mit dem Aufkommen von Kurzvideoplattformen ist Xiaohongshu für viele Menschen zu einer Plattform geworden, auf der sie ihr Leben teilen, sich ausdrücken und Traffic gewinnen können. Auf dieser Plattform ist die Veröffentlichung von Videoarbeiten eine sehr beliebte Art der Interaktion. Wie veröffentlicht man also Xiaohongshu-Videoarbeiten? 1. Wie veröffentliche ich Xiaohongshu-Videowerke? Stellen Sie zunächst sicher, dass Sie einen Videoinhalt zum Teilen bereit haben. Sie können zum Fotografieren Ihr Mobiltelefon oder eine andere Kameraausrüstung verwenden, Sie müssen jedoch auf die Bildqualität und die Klarheit des Tons achten. 2. Bearbeiten Sie das Video: Um die Arbeit attraktiver zu gestalten, können Sie das Video bearbeiten. Sie können professionelle Videobearbeitungssoftware wie Douyin, Kuaishou usw. verwenden, um Filter, Musik, Untertitel und andere Elemente hinzuzufügen. 3. Wählen Sie ein Cover: Das Cover ist der Schlüssel, um Benutzer zum Klicken zu bewegen. Wählen Sie ein klares und interessantes Bild als Cover, um Benutzer zum Klicken zu bewegen.

Viele Benutzer schauen sich gerne Videos im Browser an, wenn beim Ansehen von Webvideos im Edge-Browser kein Ton zu hören ist. Wie kann das Problem gelöst werden? Dieses Problem ist nicht schwierig. Lassen Sie mich als Nächstes erklären, wie Sie das Problem beheben können, dass in Edge-Browser-Webvideos kein Ton zu hören ist. In Edge-Browser-Webvideos ist kein Ton zu hören? Methode 1: 1. Überprüfen Sie zunächst die obere Registerkarte des Edge-Browsers. 2. Auf der linken Seite der Registerkarte befindet sich eine „Sound-Schaltfläche“. Stellen Sie sicher, dass diese nicht stummgeschaltet ist. Methode 2: 1. Wenn bestätigt wird, dass der Ton nicht stummgeschaltet ist, liegt möglicherweise ein Problem mit der Toneinstellung vor. 2. Sie können mit der rechten Maustaste auf das Audiogerät in der unteren rechten Ecke klicken und „Lautstärkesynthesizer öffnen“ auswählen. 3. Öffnen

Spieler können Lucia's Crimson Abyss erhalten, wenn sie Battle Double Pamish spielen. Viele Spieler wissen nicht, wie sie Lucia's Crimson Abyss durch Forschung und Entwicklung erhalten oder im Phantom Pain Cage-Shop einlösen können. So erhalten Sie R&D für Battle Double Pamish Lucia Crimson Abyss 1. Spieler können es durch Ziehen aus dem R&D-System erhalten, das den Basiskartenpool, den themenbegrenzten Kartenpool und den Destiny-begrenzten Kartenpool 2 umfasst. In diesen Kartenpools offenbart Die grundlegende Drop-Rate von Sia Crimson Abyss beträgt 1,50 %, aber wenn der Spieler Lucia Crimson Abyss aus dem Kartenpool zieht, erhöht sich die Drop-Rate auf 1,90 %. Einlösung im Phantom Pain Cage Store 1. Spieler können Fragmente von Lucia Crimson Abyss einlösen, indem sie Phantom Pain Scars im Phantom Pain Cage Store verwenden. 2. Sie können jede Woche bis zu 30 Fragmente einlösen.

Microsoft PowerPoint-Präsentationen gehören zu unseren am häufigsten verwendeten Office-Programmen. Um die zu erläuternden Inhalte umfassend und detailliert darzustellen, ist Video eine der wichtigen Präsentationsmethoden. Wissen Sie, wenn wir Videos in PPT einfügen, sei es über Hyperlinks oder WindowsMediaPlayer-Steuerelemente, müssen wir Pfadprobleme berücksichtigen. Wenn wir also ein PPT-Video einbetten und in einer Datei kombinieren möchten, wie sollten wir das Problem lösen? Schauen wir uns als nächstes die Lösung an! Die Schritte sind wie folgt: 1. Zuerst doppelklicken wir, um die Microsoft PowerPoint-Präsentation [Video Embed.pptx] zu öffnen. Weil ShockwaveFlashO verwendet wird

Mit der Popularität von Douyin teilen immer mehr Menschen ihr Leben, ihre Talente und ihre Kreativität gerne auf dieser Plattform. Die 15-Sekunden-Begrenzung von Douyin gibt vielen Nutzern das Gefühl, dass es nicht unterhaltsam genug ist, und hofft, die Videodauer zu verlängern. Wie können Sie also die Videodauer auf Douyin verlängern? 1. Douyin 15 Sekunden ist zu kurz. Wenn Sie es verlängern möchten, wie können Sie es verlängern? 1. Der bequemste Weg, mehrere Videos aufzunehmen und zusammenzufügen, besteht darin, mehrere 15-Sekunden-Videos aufzunehmen und sie dann mit der Bearbeitungsfunktion von Douyin zu kombinieren. Achten Sie bei der Aufnahme darauf, am Anfang und Ende jedes Videos etwas Leerraum für das spätere Zusammenfügen zu lassen. Die Länge des gespleißten Videos kann mehrere Minuten betragen. Dies kann jedoch dazu führen, dass der Videobildschirm zu häufig wechselt, was das Seherlebnis beeinträchtigt. 2. Verwenden Sie Douyin-Spezialeffekte und Aufkleber. Douyin bietet eine Reihe von Spezialeffekten
