V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
oroKAKA
V2EX  ›  程序员

用 FFMPEG 下载的直播视频,按了 Ctrl+C 之后,保存的 mp4 视频无法播放。

  •  
  •   oroKAKA · 2020-11-03 18:22:08 +08:00 · 2838 次点击
    这是一个创建于 1487 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用 FFMPEG 下载的直播视频,按了 Ctrl+C 之后,保存的 mp4 视频无法播放。 文件时有数据的,应该是最后的完结程序没有正常运行。 请问有办法让他恢复正常吗?或者播放。 谢谢。

    文件样本: https://25.gigafile.nu/1110-da2e1a71fe6ef6dd5df45ff69c7f5270a 点击 [ master_2000.mp4 ] 就可以下载

    21 条回复    2020-11-05 17:22:28 +08:00
    ungrown
        1
    ungrown  
       2020-11-03 19:45:39 +08:00
    链接没能成功打开,用奶牛快传吧
    newmlp
        2
    newmlp  
       2020-11-03 19:48:19 +08:00
    mp4 的头部信息一般保存在文件尾部
    Anig
        3
    Anig  
       2020-11-03 19:50:06 +08:00 via iPhone
    用的什么系统,可以用 mediainfo 看一下视频编码? ffmpeg 什么命令?其实跟 Ctrl + C 和 按 q 结束差别不大,我猜测应该需要转一下码 ,Google:ffmpeg to 420 。不管什么格式,多半用 VLC Player 可以打开。
    ETiV
        4
    ETiV  
       2020-11-03 20:12:03 +08:00 via iPhone
    用 ffplay 试一下,那个东西很强的
    feast
        5
    feast  
       2020-11-04 02:05:36 +08:00
    可以修复,有个项目
    oroKAKA
        6
    oroKAKA  
    OP
       2020-11-04 09:24:06 +08:00
    @ungrown
    https://cowtransfer.com/s/4ad0bbd1d3bc40
    提取码:814632
    不好意思,昨晚回去忙着玩 quest2 把这事给忘了。
    oroKAKA
        7
    oroKAKA  
    OP
       2020-11-04 09:37:30 +08:00
    @newmlp
    不好意思,其实我不是程序员。
    所以我不是很懂头部文件是什么。我研究一下。
    - -公司的程序员甩给我一句,有点麻烦就放弃我了。

    @Anig
    谢谢。
    VLC 打不开。我研究一下那些指令怎么用。
    命令是
    ffmpeg -i https://ntv2.akamaized.net/hls/live/2013923/NASA-NTV2-HLS/master_2000.m3u8 -c copy output11.mp4

    @ETiV @feast
    谢谢 我研究一下。
    newmlp
        8
    newmlp  
       2020-11-04 10:05:47 +08:00
    看了一下,你这个文件丢掉了 MP4 中最重要的 moov 结构,这个一般是最后写入文件的,强制终止可能程序没来得及写入这个东西,可以完整录制一个相同源的 MP4 文件,让后替换 moov 结构试一下
    weipt
        9
    weipt  
       2020-11-04 10:14:51 +08:00
    文件无法下载,不能播放是指在网页上不能播放还是用任何浏览器都不能播放呢
    h4de5
        10
    h4de5  
       2020-11-04 10:37:37 +08:00
    streamlink
    ungrown
        11
    ungrown  
       2020-11-04 10:41:11 +08:00
    https://github.com/SuslikV/untrunc-w
    你需要一个正常完整的视频作为“参考”,这个参考视频的参数应当与破损视频一致或者差不多,比如来自同一台摄影设备,同一个录屏软件,同一组输出参数设置,诸如此类的一致性方可作为参考
    Anig
        12
    Anig  
       2020-11-04 10:46:50 +08:00
    奇了怪了,我这边( Linux 系统)用完全一样的 ffmpeg 命令下载的就可以打开,是不是三个 NASA 宇航员在那接受采访?

    从你牛奶快传那里下载的是损坏过的。
    oroKAKA
        13
    oroKAKA  
    OP
       2020-11-04 11:07:56 +08:00
    @newmlp
    哇,谢谢~

    @weipt
    都不能播放。
    文件链接可以看 5L 。

    @h4de5
    不好意思,不太懂。
    我研究一下。

    @ungrown
    谢谢。

    @Anig
    是的。但我按了 Ctrl+C 强制结束,似乎强制结束出错了。
    应该是 8 楼 newmlp 说的,少了 moov 结构。
    我在找修复损坏文件的方法。
    ungrown
        14
    ungrown  
       2020-11-04 11:19:03 +08:00
    @oroKAKA #13
    untrunc-w 就是修复工具,只不过它需要一个完整的参数一致或接近的视频文件作为参考
    linux 下直接用 untrunc 就行,untrunc-w 是 Windows 中可用的版本
    简单的命令行工具,除非你看不懂它的英文说明
    oroKAKA
        15
    oroKAKA  
    OP
       2020-11-04 14:11:27 +08:00
    @ungrown 多谢回答。问了一下程序员朋友,似乎这个项目有点旧,需要自己编 ffmpeg 的库,目前打算放弃了。
    ungrown
        16
    ungrown  
       2020-11-04 14:46:28 +08:00
    @oroKAKA #15 不是有编译好的.exe 文件直接下载吗
    oroKAKA
        17
    oroKAKA  
    OP
       2020-11-04 17:30:13 +08:00
    @ungrown
    [有 exe,但是是这个 exe 需要依赖的库没有,要自己编译库,还是特定版本的,他自己也有说明是 2017 年版本的。]
    他这样回复我。我已经看懵了。
    ungrown
        18
    ungrown  
       2020-11-04 22:00:55 +08:00
    @oroKAKA #17 这得怪我
    我是从 videohelp 站上搜到这个软件的,却误以为 github 上的更值得优先选择
    你试试下面这个页面提供的,应该是可用的
    https://www.videohelp.com/software/MP4-Repair-untrunc-GUI
    oroKAKA
        19
    oroKAKA  
    OP
       2020-11-05 11:12:25 +08:00
    @ungrown
    哇,谢谢~确实可以用。
    不过效果可能有点不如人意。
    绿幕,卡顿很严重。
    打算放弃了。
    ungrown
        20
    ungrown  
       2020-11-05 12:12:18 +08:00   ❤️ 2
    @oroKAKA #19 视频文件其实可以看成一个个数据通道,每个通道里面塞满了大量小小的封包在跑动,视频流里面的那些封包描述了视频最最基本的记录单位,无数小包最终描述出了一幅幅画面,和其中包含的变化。
    从宏观上看,这些数据包在排列上具有一定的规律性,但是凑近了看会发现有很多随机性,谁先谁后、谁大谁小,不一定的,所以需要一些额外的数据作为一个索引,一张可以查询的表格,这样解码器才能按照正确的空间顺序组装这些小封包,就跟拼图一样,要么早就知道每块的位置,要么猜出来。
    所以才需要一个“参考”文件,在参数一致性较高的情况下,两个视频流中的封包排列大概率具有共性,找出这些共性,就可以猜测每一块的位置了,等于是要把那个丢失的索引表给猜出来。
    那毫无疑问不可能全部猜出来的,没猜出来的部分,就会被解码器输出为卡顿丢帧、画面破碎、颜色块缺失花屏,就跟磁带光碟受损后上面的视频播放时出现的现象类似。
    视频坏了就是坏了,想完全还原是不可能的,能猜出多少算多少。
    oroKAKA
        21
    oroKAKA  
    OP
       2020-11-05 17:22:28 +08:00
    @ungrown
    哦哦哦,我懂了。
    长知识了,谢谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1624 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 16:52 · PVG 00:52 · LAX 08:52 · JFK 11:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.