我希望能够打开一个给定的文件,并看到"这是一个MP4文件",或"这是一个webm"文件,甚至"这似乎不是一个有效的视频"
我在https://code.google.com/p/pyffmpeg/上看到了FFmpeg包装器,但我没有看到任何类型的get_codec函数.
思考?
我正在尝试将MP4视频文件转换为f4v视频文件,以便我可以使用Flash Media Server流式传输视频.理想情况下,我想将mp4转换为各种比特率,以便我可以完成视频的多比特流.我很确定ffmpeg能够做到这一点,但我不断得到不同的错误消息.这是我尝试过的最新内容:
ffmpeg.exe -i source.mp4 -ar 150 destination.f4v
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:"无法找到'destination.mp4'destination.mp4的合适输出格式:无效的参数
提前致谢!
我正在检查从Android设备录制的.mp4视频文件中包含的解码器配置记录.某些设备在解码器配置记录中写入了奇怪或不正确的参数.
以下是来自Galaxy Player 4.0的示例,该示例不正确:
DecoderConfigurationRecord: 010283f2ffe100086742000de90283f201000568ce010f20
pictureParameterSetNALUnits : 68ce010f20
AVCLevelIndication : 242
AVCProfileIndication : 2
sequenceParameterSetNALUnits : 6742000de90283f2
lengthSizeMinusOne : 3
configurationVersion : 1
profile_compatibility : 131
profile_idc : 103
constraint_set : 16
level_idc : 0
Run Code Online (Sandbox Code Playgroud)
AVCLevelIndication == 242 是错误的,因为标准状态51是最高值.
AVCProfileIndication 应该在(66,77,88,100,120,..)
profile_compatibility被称为constraint_set?_flags和2个最低有效位被保留并且被置于等于0
它应该是这样的:
DecoderConfigurationRecord: 0142000dffe100086742000de90283f201000568ce010f20
pictureParameterSetNALUnits : 68ce010f20
AVCLevelIndication : 13
AVCProfileIndication : 66
sequenceParameterSetNALUnits : 6742000de90283f2
lengthSizeMinusOne : 3
configurationVersion : 1
profile_compatibility : 0
profile_idc : 103
constraint_set : 16
level_idc : …Run Code Online (Sandbox Code Playgroud) 我想具体说明我的要求.我不是要求修改任何MP4文件,只是提取宽度和高度以及比特率和编码等元数据,这不在MP3标签中.
我已经测试了Xuggle,但是我需要有一个不使用JNI或任何本机代码的库.
我已经研究过MP4Parser和Apache Tika,他们都不提取元数据,只是标记信息或改变文件.
有这样的java lib吗?
我想要做的是在JW Player中播放一个由字节数字节给出的.mp4文件.
所以这是JW Player的脚本:
<script type="text/javascript">
jwplayer("contvideo").setup({
flashplayer:"jwplayer/player.swf",
file: "downloadvideo.aspx",
provider: "video",
height: 140,
width: 188,
skin: "jwplayer/slim.zip",
modes: [{type:'flash',src:'jwplayer/player.swf'},{type:'html5'},{type:'download'}] });
</script>
Run Code Online (Sandbox Code Playgroud)
该脚本从网页服务downloadvideo.aspx中恢复其电影文件.
downloadvideo.aspx的代码是:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim bytes() As Byte = System.IO.File.ReadAllBytes("C:\websites\videospecialty\wdo.mp4")
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment;filename=wdo.mp4")
Response.ContentType = "video/mp4"
Response.Flush()
Response.OutputStream.Write(bytes, 0, bytes.Length)
Response.OutputStream.Flush()
Response.End()
End Sub
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试这个JW Player错误并说他们没有找到视频时.
任何有关这方面的帮助都会受到极大的关注.
如何使用Gstreamer将纯h.264流包装到mp4中,以便我可以在视频中寻找特定位置?使用Gstreamer是因为它的许可证要求,所以请不要提供ffmpeg!
根据x264编码指南,crf比例取决于x264是8位还是10位.据说x264 --help显示了Output bit depth.但在Windows ffmpeg -h full上没有说什么,Output bit depth并且crf缩放选项被描述为from -1 to FLT_MAX.如何检查我的ffmpeg是使用8位还是10位版本的libx264库?
我已按照jplayer.org网站上的说明编写并安装了示例视频html文件.使用jplayer提供的示例视频,视频可以播放IE,Chrome和Pale Moon,但我不确定播放哪个版本(m4v或ogv). - www.bbhq.com/first2.htm
但是,当我将视频编码更改为我的mp4(而不是m4v)和ogv文件时,如下所示,播放器播放,但默认为IE,Chrome和Pale Moon中的ogv版本.在我的Kindle Fire HDX上,它会显示消息,指示我需要安装Flash插件,当然,它不适用于Kindle Fire HDX,因此根本无法播放:
www.bbhq.com/first3.htm
$(document).ready(function(){
$("#jquery_jplayer_1").jPlayer({
ready: function () {
$(this).jPlayer("setMedia", {
title: "my title",
mp4: "http://www.bbhq.com/vfiles/mine.mp4",
ogv: "http://www.bbhq.com/vfiles/mine.ogv",
poster: "http://www.bbhq.com/vfiles/mine.png"
});
},
swfPath: "/jp",
supplied: "mp4, ogv"
});
Run Code Online (Sandbox Code Playgroud)
我的偏好是尽可能播放mp4版本,如果可能的话,跳过必须使用ogv文件.
我编写了我的mp4文件,就像我使用Handbrake为其他玩家(H.264)所做的那样.
我的mp4编码不正确,或者我对html页面的编码不正确.你能帮帮我吗?
谢谢.
我正在开发一个需要打开.mp4文件格式的项目,逐个读取它的帧,解码它们并用更好的无损压缩类型对它们进行编码并将它们保存到文件中.
如果我对做事的顺序错了,请纠正我,因为我不是100%确定应该怎么做这件事.根据我的理解,它应该是这样的:
1. Open input .mp4 file
2. Find stream info -> find video stream index
3. Copy codec pointer of found video stream index into AVCodecContext type pointer
4. Find decoder -> allocate codec context -> open codec
5. Read frame by frame -> decode the frame -> encode the frame -> save it into a file
Run Code Online (Sandbox Code Playgroud)
到目前为止,我遇到了几个问题.例如,如果我想使用av_interleaved_write_frame()函数保存框架,我无法打开输入.mp4文件,avformat_open_input()因为它将使用输入文件名填充结构的filename一部分,AVFormatContext因此我无法"写入"该文件.我尝试过不同的解决方案,av_guess_format()但是当我使用i转储格式时,我dump_format()什么都没得到,所以我找不到关于它使用哪种编解码器的流信息.
所以如果有人有任何建议,我会非常感激他们.先感谢您.
我想将mov视频转换为mp4。当前,我通过以下调用通过bash使用ffmpeg进行管理:
ffmpeg -i input.mov -f mp4 -vcodec mpeg2video -acodec mp3 output.mp4
Run Code Online (Sandbox Code Playgroud)
是的,这行得通,但是质量很糟糕。我的50Mb压缩为一个方便的2.3 Mb文件。我尝试了仅更改容器的变体:
ffmpeg -i input.mov -f mp4 -vcodec copy -acodec mp3 output.mp4
Run Code Online (Sandbox Code Playgroud)
是的,也可以,但是文件仍然很大,因为我不压缩视频。所以我的50Mb保持50Mb。
是否有一种设置,可以在不完全缺乏质量的情况下进行轻微或逐步压缩?我的目标是输出大约10-20 Mb的文件。
我试过的
ffmpeg -i input.mov -f mp4 -vcodec -qscale:v 4 -acodec mp3 output.mp4
给我错误信息:
警告:库配置不匹配[...]未知编码器'-qscale:v'
使用的版本:ffmpeg版本2.8.11-0ubuntu0.16.04.1