用 FFMPEG 下载的直播视频,按了 Ctrl+C 之后,保存的 mp4 视频无法播放。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
oroKAKA
V2EX    程序员

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

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

    用 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     Solana     2541 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 12:11 PVG 20:11 LAX 05:11 JFK 08:11
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86