我必须使用从不同移动设备收到的FFMPEG将MP4视频文件转换为FLV格式.我发现大多数东西都将flv视频转换成mp4和所有.
任何身体可以帮助我使用FFMPEG将mp4格式转换为flv.我正在使用Windows 7 64位机器.
我想使用H264编解码器使用OpenCV从网络摄像头流式传输实时视频,然后将其转换为FLV,然后通过RTMP服务器流式传输,并使用flv.js在浏览器中捕获流.基本上我有一切工作,除了我无法读取flv.js中的流.我可以打开流,ffplay所以我认为至少大多数事情都设置正确.
我目前的实施:
#include <iostream>
#include <vector>
#include <opencv2/highgui.hpp>
#include <opencv2/video.hpp>
extern "C" {
#include <libavformat/avformat.h>
#include <libavcodec/avcodec.h>
#include <libavutil/avutil.h>
#include <libavutil/pixdesc.h>
#include <libavutil/imgutils.h>
#include <libswscale/swscale.h>
}
void stream_video(double width, double height, int fps, int camID)
{
av_register_all();
avformat_network_init();
const char *output = "rtmp://localhost/live/stream";
const AVRational dst_fps = {fps, 1};
int ret;
// initialize video capture device
cv::VideoCapture cam(camID);
if (!cam.isOpened())
{
std::cout << "Failed to open video capture device!" << std::endl;
exit(1);
}
cam.set(cv::CAP_PROP_FRAME_WIDTH, width);
cam.set(cv::CAP_PROP_FRAME_HEIGHT, height);
// …Run Code Online (Sandbox Code Playgroud) 我希望用最小的文件大小来完成质量最好的FLV.毕竟,这不是每个人的目标吗?如果有任何不同,这些视频将会流式传输.
目前,我的视频不超过320像素,有些是宽屏,因此它们的高度略小于240像素.目前,转换后的FLV的质量非常差.
当前命令:
> ffmpeg -i video.mov -ar 22050 -ab 32 -f flv -s 320x240 -aspect 4:3 video.flv
Run Code Online (Sandbox Code Playgroud) 我被分配到的新产品的一部分涉及服务器端将"常见"视频格式转换为Flash可以播放的内容.
据我所知,我唯一的选择是转换为FLV.我一直在给ffmpeg一个转机,但我发现了一些声音乱码的WMV文件(我试过播放音频).
Linux还有其他"好"的CLI转换器吗?或者Flash可以播放其他视频格式吗?
问题是我的互联网连接很慢,而且视频没有像YouTube一样缓冲.因此我想知道天气我可以提取.flv文件的URL,该文件正在JW Player中流式传输并直接下载.做一些初步研究,我发现了以下信息:
20100425_mother.flv我经营一个网站,其中包含大约700个参考视频(不,它不是色情片 - 让你的思绪脱离阴沟:-)).
这些视频目前采用FLV格式.我们使用JWPlayer渲染这些视频.IIS6托管.一切正常.
据我了解,H.264(不是FLV,可能不是OGG)是新兴的首选HTML5视频标准.今天,iPad真的只尊重H.264或YouTube.据推测,很快更多重要的浏览器将遵循Apple的主导并仅尊重HTML5标签.
好的,所以我想我可以弄清楚如何将现有视频转换为适当的H.264格式.有各种可用的工具,包括ffmpeg.exe.我还没有尝试过,但我不认为在摆弄编解码器设置后会出现问题.
我的问题更多的是关于容器本身 - 也就是说,为所有用户规划优雅的过渡.渲染这些视频的最佳做法建议是什么?如果我只是使用HTML5标签,那么可能任何尚未支持HTML5的浏览器都不会看到这些视频.如果我通过JWPlayer或其他播放器以Flash格式呈现它们,那么它们将无法在iPad上播放.我是否必须在此处进行丑陋的UserAgent检测以确定要呈现的内容?
我知道JWPlayer支持H.264媒体,但播放器本身不是Flash组件,因此无法在iPad上播放?对不起,如果我不清楚,但我正在抓住一个优雅的过渡计划,这将适用于当前的浏览器,iPad和即将推出的HTML5浪潮.我不是视频专家,所以任何建议都会受到欢迎,谢谢.
我的客户需要接受一堆不同的视频文件并将其转换为FLV.我在以前的项目中使用FFMEG的经验强调了会有一些麻烦的文件.
根据价格,我的客户将支付专业服务费用.
人们在使用什么以及如何找到这项服务?
谢谢.
我的Flex应用程序使用red5记录纯音频FLV文件 - 我想将这些文件转换为SWF文件,以便将其嵌入其他SWF文件中.(我也可以转换为MP3,然后自己将它们嵌入到SWF中,但我更喜欢一步到位的解决方案.)
有没有经验呢?
我尝试过的:
以下naive ffmpeg命令失败:
> ffmpeg -i 3139747641.flv -vn movie.swf
FFmpeg version SVN-r21751-snapshot, Copyright (c) 2000-2010 Fabrice Bellard, et al.
built on Feb 11 2010 09:15:42 with gcc 4.2.1 (SUSE Linux)
configuration: --enable-gpl --enable-nonfree
libavutil 50. 9. 0 / 50. 9. 0
libavcodec 52.53. 0 / 52.53. 0
libavformat 52.52. 0 / 52.52. 0
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0.10. 0 / 0.10. 0
[flv @ 0x8a5e3a0]Could not find codec parameters (Video: 0x0000) …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我需要在Android(2.x +)上播放FLV/HTTP流.libvlc支持这个功能:我用VLC-android播放器测试了我的FLV流,它似乎有效.
但一年前,其中一位开发人员描述如下:
Android上的VLC是不完整的,未完成的,错误的,慢的,它甚至不编译.为什么这么多人试图建立它呢?
因此,为我的项目使用VLC是好的还是以其他方式搜索更好?还有其他方法可以在Andoid上播放FLV吗?
我从现在开始就使用 FFMPEG,在第一次在这里寻求帮助后,我能够发现从那时起我就使用的这个命令行,用于将 .MP4 视频转换为 .FLV ffmpeg -i namefile.mp4 -c:v libx264 -crf 19 destinationfile.flv:。
结果简直太惊人了!完美的视频和更少的空间需求。但我在新视频中尝试了同样的路线,但没有成功。
这就是我认为的:
[libmp3lame @ 03eaf5a0] flv does not support that sample rate, choose from (44100, 22050, 11025).
Run Code Online (Sandbox Code Playgroud)
之后,我尝试了这些命令行
ffmpeg -i in.mp4 -c:v libx264 -b:v 500k -c:a copy out.flv
ffmpeg -i in.mp4 -c:v libx264 -ar 22050 -crf 19 out.flv
Run Code Online (Sandbox Code Playgroud)
没有成功。所以现在我只是不知道还能做什么才能将此 MP4 文件转换为 FLV 文件,它的尺寸更小并保持完美的图像,就像之前使用第一个代码行进行的其他转换一样。
感谢您的帮助 !