我试图通过有选择地删除H.264比特流数据来模拟视频中的数据丢失。数据只是一个原始的H.264文件,本质上是一个二进制文件。我的计划是每100个字节删除2个字节,以实现2%的损失。最后,我将测试一些运动矢量错误隐藏算法的有效性。
能够在Unix环境中执行此操作会很高兴。到目前为止,我已经调查了xxd命令,我能够从二进制文件中保存十六进制转储的特定部分。例如,要跳过二进制比特流的前50个字节并保存后续的100个字节,我会执行以下操作:
xxd -s 50 -l 100 inputBinaryFile | xxd -r > outputBinaryFile
我希望将类似的内容合并到一个bash脚本中,该脚本将自动删除每100个字节的最后2个字节。此外,我希望脚本在第二次出现序列00 00 01 06 05
之前跳过所有内容(第一个P帧SEI起始码)。
我不知道在基于C语言的情况下这有多容易,但我的编程技巧非常有限,如果可能的话,我现在宁愿只处理Linux编程。
感谢。