标签: duration

如何获取MP3文件(VBR或CBR)服务器端的实际持续时间

我曾经使用ffmpeg计算服务器端MP3文件的持续时间 - 这似乎工作正常.今天我发现有些计算错了.不知何故,由于某种原因,ffmpeg将错误地计算持续时间,并且它似乎只发生在可变比特率mp3文件中.

在本地测试时,我注意到ffmpeg以绿色打印了两条额外的线条.

使用的命令:

ffmpeg -i song_9747c077aef8.mp3
Run Code Online (Sandbox Code Playgroud)

ffmpeg说:

[mp3 @ 0x102052600] max_analyze_duration 5000000 reached at 5015510
[mp3 @ 0x102052600] Estimating duration from bitrate, this may be inaccurate
Run Code Online (Sandbox Code Playgroud)

在一个不错的,温暖的谷歌会议之后,我发现了一些帖子,但没有找到解决方案.

然后我试着增加最长持续时间:

ffmpeg -analyzeduration 999999999 -i song_9747c077aef8.mp3
Run Code Online (Sandbox Code Playgroud)

在此之后,ffmpeg仅返回第二行:

[mp3 @ 0x102052600] Estimating duration from bitrate, this may be inaccurate
Run Code Online (Sandbox Code Playgroud)

但在任何一种情况下,计算的持续时间都是完全错误的.将其与VLC进行比较我注意到持续时间是正确的.

经过更多的研究,我偶然发现了mp3info - 我安装和使用了它.

mp3info -p "%S" song_9747c077aef8.mp3
Run Code Online (Sandbox Code Playgroud)

然后mp3info返回CORRECT持续时间,但只作为一个整数,我不能使用,因为我需要一个更准确的数字.用户blahdiblah在下面的评论中解释了这个原因- mp3info只是从文件中提取ID3信息而不是实际执行任何计算.

我也尝试使用mplayer来检索持续时间,但就像ffmpeg一样,mplayer返回错误的值.

mp3 duration ffmpeg

22
推荐指数
5
解决办法
2万
查看次数

将秒转换为人类可读的持续时间

我怎样才能最好地将90060(秒)转换成一串"25h 1m"?

目前我在SQL中这样做:

SELECT 
  IF(
    HOUR(
      sec_to_time(
        sum(time_to_sec(task_records.time_spent))
      )
    ) > 0, 
    CONCAT(
      HOUR(sec_to_time(sum(time_to_sec(task_records.time_spent)))), 
      'h ', 
      MINUTE(sec_to_time(sum(time_to_sec(task_records.time_spent)))),
      'm'
    ), 
    CONCAT(
      MINUTE(sec_to_time(sum(time_to_sec(task_records.time_spent)))),
      'm'
    )
  ) as time
FROM myTable;
Run Code Online (Sandbox Code Playgroud)

但我不确定这是最方便的方法:-)

我对在SQL(不同于我已经在做)或PHP中这样做的建议持开放态度.

编辑:

所需字符串的示例:"5m","40m","1h 35m","45h""46h 12m".

mysql time duration

21
推荐指数
2
解决办法
5万
查看次数

如何从mp4,wmv,flv,mov视频获取视频时长

好的.其实我主要需要的是mp4格式.但是,如果有可能获得其他类型,那将是不错的.我只需要读取文件的持续时间.我怎么能用C#4.0做到这一点?

所以我需要的是这个视频就像: 13 minutes 12 seconds

我也可以使用3个第三方的前任.就像他们将有关文件的信息保存到文本文件中一样.我可以解析该文本文件.

谢谢.

.net c# video mp4 duration

21
推荐指数
5
解决办法
5万
查看次数

scrollTo 速度/持续时间设置

有没有办法加快 的行为速度scrollTo

我在黑暗中刺了一下speedduration但不起作用!

window.scrollTo({
    top: 1000,
    behavior: "smooth"
});
Run Code Online (Sandbox Code Playgroud)

参考:

javascript duration scrollto

21
推荐指数
2
解决办法
2万
查看次数

C# - 两个DateTimes之间的持续时间(分钟)

我需要确定两个DateTimes之间的持续时间(以分钟为单位).

然而,有一点点扭曲:

  • 排除周末
  • 只计算在上午7:00到下午7:00之间的分钟数.例如: [09/30/2010 6:39:00 PM] - [09/30/2010 7:39:00 PM] = 21 Minutes

我只是很难找到一个体面的方式去做,如果有人能提出建议,我会很感激.

谢谢.


编辑:

我最终选择了dtb的解决方案.只有一个特殊情况需要注意:如果结束时间是在晚上7点之后,则计算从上午7点到实际结束时间的分钟数.

这是我修改它的方式:

var minutes = from day in start.DaysInRangeUntil(end)
                where !day.IsWeekendDay()
                let st = Helpers.Max(day.AddHours(7), start)
                let en = (day.DayOfYear == end.DayOfYear ? 
                            end :
                            Helpers.Min(day.AddHours(19), end)
                            )
                select (en - st).TotalMinutes;
Run Code Online (Sandbox Code Playgroud)

再一次感谢你的帮助.

c# datetime duration

20
推荐指数
2
解决办法
7825
查看次数

golang time.Since()有几个月和几年

我想尝试转换这样的时间戳:

2015-06-27T09:34:22+00:00
Run Code Online (Sandbox Code Playgroud)

到格式的时间所以它会说像9个月前1天2小时30分2秒.

类似的东西.

我使用time.Parsetime.Since达到这个目的:

6915h7m47.6901559s
Run Code Online (Sandbox Code Playgroud)

但是我如何从那里转换?这样的事情就是我想的:

for hours > 24 {
        days++
        hours -= 24
}
Run Code Online (Sandbox Code Playgroud)

但问题是,这个月不准确,因为几个月可能有28天,30天和31天.

有没有更好的方法来实现我想要的?

time duration go

20
推荐指数
2
解决办法
2万
查看次数

Java:如何将字符串(HH:MM:SS)转换为持续时间?

我想将格式为HH:MM:SS或MM:SS或SS的字符串转换为持续时间的数据类型.

解:

    private ArrayList<Duration> myCdDuration = new ArrayList<Duration>();

        private void convert(String aDuration) {

            chooseNewDuration(stringToInt(splitDuration(aDuration))); //stringToInt() returns an int[] and splitDuration() returns a String[]
        }

        private void chooseNewDuration(int[] array) {
            int elements = array.length;
            switch (elements) {
            case 1:
                myCdDuration.add(newDuration(true, 0, 0, 0, 0, 0, array[0]));
                break;
            case 2:
                myCdDuration.add(newDuration(true, 0, 0, 0, 0, array[0], array[1]));
                break;
            case 3:
                myCdDuration.add(newDuration(true, 0, 0, 0, array[0], array[1],
                        array[2]));
                break;
            }
        }
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助...任何更简单的方法吗? - >创建自己的Duration类:

public class Duration {
        private int intSongDuration;
        private String …
Run Code Online (Sandbox Code Playgroud)

java string duration

18
推荐指数
3
解决办法
3万
查看次数

在Google表格中计算24小时以上的时间

我有一个 Google 文档,在一列中列出了一堆hh:mm持续时间,例如:

1:30  
1:00  
0:30
Run Code Online (Sandbox Code Playgroud)

我正在SUM(D2:D24)总结,最近总时间hh:mm超过了24小时,所以我的总时间超过了24小时,结果显示0:15。

具体来说,在 Google Sheets 上,我将如何设置总单元格的格式以使其超过 24:00?

time duration sum google-sheets google-sheets-formula

17
推荐指数
2
解决办法
1万
查看次数

HTML5音频播放器持续时间显示南

我刚刚开始学习HTML5,并使用JQuery浏览HTML5音频播放器.我用播放列表编写了一个播放器,一切正常,除了持续时间,我的输入范围滑块不起作用.当我调试时,我发现我的持续时间显示为NAN.我正在设置歌曲初始化后的持续时间.

这是我的JS代码

jQuery(document).ready(function() {

    container = $('.container');
    playList =  $('#playlist');
    playListSong =  $('#playlist li');
    cover = $('.cover');
    play = $('#play');
    pause = $('#pause');
    mute = $('#mute');
    muted = $('#muted');
    close = $('#close');

    song = new Audio('music/Whistle-Flo-Rida-Mp3-Download.mp3','music/Whistle-Flo-Rida-Mp3-Download.mp3');

    var canPlay = song.canPlayType('audio/mpeg;');
    if (canPlay) {
        song.type= 'audio/mpeg';
        song.src= 'music/Whistle-Flo-Rida-Mp3-Download.mp3';
    }

    playListSong.click(function(){

        $('#close').trigger('click');
        window["song"] = new Audio('music/'+$(this).html()+'.mp3','music/'+$(this).html()+'.mp3');

        $('#play').trigger('click');

    });

    play.live('click', function(e) {

        e.preventDefault();
        song.play();
        //cover.attr("title", song.duration);
        $(this).replaceWith('<a class="button gradient" id="pause" href="" title=""><span>k</span></a>');

        $('#close').fadeIn(300);
        $('#seek').attr('max',song.duration);
    });

    pause.live('click', function(e) {
        e.preventDefault();
        song.pause();
        $(this).replaceWith('<a class="button gradient" …
Run Code Online (Sandbox Code Playgroud)

duration nan html5-audio

15
推荐指数
1
解决办法
2万
查看次数

上传后获取视频的持续时间

什么是最好的方法?

我有一个用户将上传视频的字段.

单击上传按钮时,视频上传.这工作完美.

我需要物理路径的视频持续时间,我试过:

using WMPLib;
WindowsMediaPlayer wmp = new WindowsMediaPlayerClass();
IWMPMedia mediaInfo = wmp.newMedia(Server.MapPath("~/Uploads/test.mp4"));
double duration = mediaInfo.duration;
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我得到错误:

类型'WMPLib.WindowsMediaPlayerClass'没有定义构造函数,无法嵌入Interop类型'WMPLib.WindowsMediaPlayerClass'.

如何抓住持续时间?

c# asp.net video duration

15
推荐指数
2
解决办法
2532
查看次数